2009-08-13 6 views
0

Ich verwende ASMX-Webdienste in VB.Net in VS 2005. Ich rufe eine Funktionsmethode für den Webdienst auf, die einen wahren oder falschen Wert zurückgibt. Das funktioniert gut, wenn ich die Webmethode synchron aufruft, aber wenn ich die Methode asynchron aufrufen möchte, kehrt die Funktion zu einem Sub zurück und es gibt keinen Rückgabewert; Daher kann ich nicht sagen, ob das Ergebnis des Anrufs wahr oder falsch ist. Gibt es eine Möglichkeit, einen asynchronen Aufruf auszuführen und trotzdem das wahre oder falsche Ergebnis zu erhalten (möglicherweise mithilfe des UserState-Objekts)?Rückgabewert von Asynchronous Web Service-Aufruf

Beispiel:

Dim MyResult as Boolean = MyService.GetResult(10) 
Dim MyResult as Boolean = MyServer.GetResultAsync(10) 

Dies funktioniert nicht, den Compiler beschwert sich: „Expression Produce keinen Wert“

Antwort

0

In der Proxy-Klasse, die VS für Sie erstellt, muss etwas wie BeginGetResult vorhanden sein - diese Methode gibt die Schnittstelle IAsyncResult zurück - mit deren Hilfe Sie erkennen können, wann die Ausführung erfolgt ist. Danach erhalten Sie einen Wert.

+0

'Begin */End *' sind in seiner Situation nicht mehr notwendig, da das neue ereignisgesteuerte Modell in .NET 2.0 eingeführt wurde. –