1
我寫了一個webmethod,它返回用戶列表,雖然服務工作正常,但當我從頁面調用它時,webservice中的方法返回類型爲void。方法返回值在silverlight中顯示爲void
我寫了一個webmethod,它返回用戶列表,雖然服務工作正常,但當我從頁面調用它時,webservice中的方法返回類型爲void。方法返回值在silverlight中顯示爲void
您可能會被拋出的是,必須異步處理Silverlight中的Web服務調用。
當你定義一個WebMethod時,比如說你有一個名爲WorkMan的類叫做DoWork。您在Silverlight的代碼最終會看起來像:
WorkManSoapClient client = new WorkManSoapClient();
client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(this.DoWorkCompleteHandler); // where DoWorkCompletedHandler handles the callback.
然後你打電話給你的實際方法,並允許回調處理結果。
client.DoWorkAsync();
如果你的webmethod返回一個值,你的EventArg對象將有一個Result屬性,你可以利用它的結果。
最後一點:個人風格的東西,但我喜歡lambda表達式,而不是爲回調生成一個全新的方法。我可能會寫如下內容:
WorkManSoapClient client = new WorkManSoapClient();
client.DoWorkCompleted += (s,e) => {
if(e.Result != null){
object foo = e.Result;
}
};
client.DoWorkAsync();
我很抱歉,但這劑量對我有效,我仍然無法從方法中獲得值。 – 2009-04-14 12:12:58