Avatar billede mortvader Nybegynder
04. februar 2012 - 12:10 Der er 14 kommentarer og
1 løsning

Hjælp til webservice

Jeg har lige downloadet Visual C#, som jeg aldrig har arbejdet i før.

Jeg har brug for at arbejde med en webservice, som jeg fik tilføjet projektet via "Add service reference".

Webservicen har en HelloWorld funktion som netop returnerer en streng med "hello world".

Jeg har i min C# forms applikation en knap og en tekstbox.
Jeg vil gerne kalde helloworld funktionen og udfyldte textboxen med svaret.

Jeg kan via object browseren finde funktionen, men hvordan pokker får jeg den til at virke? I min måske gammeldaws logik, burde jeg kunne skrive:

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = TestWebService.IService.HelloWorld();
}

Men jeg får følgende fejlbesked:
An object reference is required for the non-static field, method, or property 'WindowsFormsApplication1.TestWebService.IService.HelloWorld()

Hjæælp :)
Avatar billede erikjacobsen Ekspert
04. februar 2012 - 12:53 #1
Du skal nok lave et objekt med new, og på det objekt kalde metoden.
Avatar billede mortvader Nybegynder
04. februar 2012 - 13:04 #2
noget i stil med:

IServiceProvider test;
test = new TestWebService.IService();


(bortset fra at dette ikke helt virker)

Kan du hjælpe med et konkret eksempel, så er jeg godt på vej?!
Avatar billede erikjacobsen Ekspert
04. februar 2012 - 13:08 #3
"ikke helt virker" ... som betyder hvad?  ;)

Det er en del år siden ... men er det ikke bare

    TestWebService test= new TestWebService();
    test.HelloWorld();
Avatar billede mortvader Nybegynder
04. februar 2012 - 13:38 #4
OK :)

Jeg prøver:

TestWebService test = new TestWebService();
Den fejler således:
WindowsFormsApplication1.TestWebService' is a 'namespace' but is used like a 'type'

TestWebService.IService test = new TestWebService.IService();
Den fejler sådan her:
Cannot create an instance of the abstract class or interface 'WindowsFormsApplication1.TestWebService.IService'

..hvordan hulen kommer jeg igang med at referere til den skidespræller? :)
Avatar billede mortvader Nybegynder
04. februar 2012 - 14:02 #5
Kan nogen hjælpe mig?

hjææælp :)
Avatar billede erikjacobsen Ekspert
04. februar 2012 - 14:06 #6
Det kommer så an på hvad den hedder. Hvilke muligheder siger VS du har når du når til punktummet i:    new TestWebService.
Avatar billede mortvader Nybegynder
04. februar 2012 - 14:17 #7
.IService og .IServiceChannel

Via objektbrowseren kan jeg finde HelloWorld funktionen under IService.

Så jeg prøver:
TestWebService.IService test;
test = new TestWebService.IService();

Men VS forklarer mig at:
Cannot create an instance of the abstract class or interface 'WindowsFormsApplication1.TestWebService.IService'

Jeg er tydeligvis bare tabt bag en vogn. Kunne jeg bare finde den rigtige måde at koble det her på, kunne jeg komme igang med at arbejde på det her lille projekt :D
Avatar billede mortvader Nybegynder
04. februar 2012 - 15:48 #8
Jeg giver 1000 point oveni hvis nogen kan give et svar :D
Avatar billede arne_v Ekspert
04. februar 2012 - 16:15 #9
IService er et interface og kan ikke instantieres.

Du skal new'e en klasse som implementerer dette interface.
Avatar billede mortvader Nybegynder
04. februar 2012 - 16:28 #10
OK, men som sagt er jeg totalt ny i det her, så jeg har nok brug for et eksempel.

http://mortenlassen.dk/webservice.png

Kan billedet hjælpe med at forklare noget?

Hvordan får jeg adgang til den HelloWorld string?
Avatar billede arne_v Ekspert
04. februar 2012 - 16:37 #11
Proev og check om ServiceClient implementerer IService.

Hvis ja - saa er det den du skal bruge!
Avatar billede mortvader Nybegynder
04. februar 2012 - 16:47 #12
OK, det virker. Læg svar for de 200 points. Hvordan overdrager jeg de 1000 ekstra? Skal jeg oprette 5 200p spørgsmål? :D -eller er der en smartere måde?

Tak for hjælpen jeg kan komme videre! TOP DOLLAR!!!

Også tak til Erik Jacobsen! Hvis du også vil have points, giver jeg også med rund hånd til dig :D
Avatar billede arne_v Ekspert
04. februar 2012 - 16:51 #13
Glem de 1000 - det er strengt forbudt ifoelge reglerne at give mere end 200 point for et spoergsmaal!
Avatar billede arne_v Ekspert
04. februar 2012 - 16:51 #14
og svar
Avatar billede mortvader Nybegynder
04. februar 2012 - 16:52 #15
Nå, ups.

Men i skal i hvert fald have de 200 for hjælpen så.
Det var en kæmpe hjælp for mig!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB