Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Webservice gibt List<string> zurück
chazon
myCSharp.de - Member



Dabei seit:
Beiträge: 70

Themenstarter:

Webservice gibt List<string> zurück

beantworten | zitieren | melden

Hallo Leute

Nachdem mein Webservice funktioniert habe ich ein Problem , wie ich die Methoden richtig aufrufe:

Die Methode im Webservice hat eine List<string> als Rückgabewert

[WebMethod]
    public List<string> KListe()...

Ich habe den Diensteverweis in meinem Programm hinzugefügt ,
using AppTest.ReferenceService1

Dann finde ich eine WebService1SoapClient

also


WebService1SoapClient MeinService = new WebServiceSoapClient();

Dort finde ich MeinService.KListeAsync() . Doch wie weise ich nun die Rückgabe einer Liste zu ?

Danke und Gruß Chazon
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2.223
Herkunft: Witten

beantworten | zitieren | melden

Hallo Chazon,

Entweder nimmst du die Methode die nicht asynchron läuft also ohne async am ende oder du benutzt die async Methode welche auch klar die bessere Wahl ist.

Bei dieser Async Methode kommt die neue async await Symptomatik zu tragen.

Asynchrone Programmierung mit Async und Await (C# und Visual Basic)

Viele Grüße
Lars
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lars Schmitt am .
private Nachricht | Beiträge des Benutzers
chazon
myCSharp.de - Member



Dabei seit:
Beiträge: 70

Themenstarter:

beantworten | zitieren | melden

Danke für die Antwort,

Ich würde ja gerne die Async - Methode nutzen
nur weis ich im Moment nicht wie ich die Rückgabe dieser Methode
in ein List<string> übernehmen kann .


[WebMethod]
     public List<string> KListe(string k_id)... 


im Programm:

List<string> kListe = new List<string>();
kListe = MeinService.KListeAsync("1"); ???



kommt wirklich ein List zurück oder evtl ein Array
Ich erhalte die Fehlermeldung
Fehler
Fehler 7 Argument '1': Konvertierung von 'void' in 'System.Collections.Generic.IEnumerable<string>' nicht möglich.
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2.223
Herkunft: Witten

beantworten | zitieren | melden

Normalerweise würdest bei den async Methoden nicht List<T> sondern eher Task<List<T>> zurück bekommen,

Jedoch bei dir scheint es eher so zu sein, dass du gar nichts also void zurückbekommst, aufgrund der Informationen die dir deine IDE anzeigt, solltest du darauf aber auch selber kommen können.

Viele Grüße
Lars
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lars Schmitt am .
private Nachricht | Beiträge des Benutzers
chazon
myCSharp.de - Member



Dabei seit:
Beiträge: 70

Themenstarter:

beantworten | zitieren | melden

Also , ich stehe im Moment etwas daneben ?(

Also meinen Webservice habe ich getestet und er liefert im Browser
die gewünschten Ergebnisse

Ich versuche nun wie in diversen Tuts beschrieben den
Webservice zu konsumieren was aber nicht funktioniert.

Ich habe einen Dienstverweis hinzugefügt

Dort wird unter Dienste
WebService1Soap
WebService1HttpGet
WebService1HttpPost

(Ich sollte vielleicht erwähnen ,dass der Service remote läuft)

Unter Vorgänge werden bei allen die entsprechenden Methoden angezeigt

Danach komme ich dann irgendwie nicht weiter (zumindest nicht so dass es verstehe).
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.761

beantworten | zitieren | melden

Wie alt sind die Tutorials?
Gerade im .NET 4.5 hat sich hier mit async/await viel geändert.

Du musst a) die Grundlagen von SOAP verstehen (wobei SOAP heute eigentlich veraltet ist bzw. viele das als veraltet sehen und man REST eher nimmt, sofern kein 1:1 Binding erforderlich ist) und b) verstehen was async/await ist und wie man damit korrekt umgeht.
Mit "Service hinzufügen" und gar nicht verstehen, wie man Services korrekt verwendet, ist es halt nicht getan.
private Nachricht | Beiträge des Benutzers
chazon
myCSharp.de - Member



Dabei seit:
Beiträge: 70

Themenstarter:

beantworten | zitieren | melden

Kannst du Mr ein gutes tutorial oder auch Buch nennen:-) ?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.761

beantworten | zitieren | melden

WCF Data Services 4.5
private Nachricht | Beiträge des Benutzers
chazon
myCSharp.de - Member



Dabei seit:
Beiträge: 70

Themenstarter:

beantworten | zitieren | melden

Vielen Dank , das sieht gut aus.
Bin damit wohl eine Weile beschäftigt

Danke und Gruß
chazon
private Nachricht | Beiträge des Benutzers