1
我需要在Silverlight庫中實現一個方法,該方法通過httpwebrequest調用(非wcf-)服務,獲取響應,然後填充對象並將其返回。從Silverlight中的服務調用返回對象
因爲這是Silverlight,所以響應異步返回,所以我無法找出這個對象應該在哪裏填充以及應該如何返回。
這是我到目前爲止的代碼:
public MyObject GetMyObject
{
HttpWebRequest req = WebRequest.Create(MyUri) as HttpWebRequest;
req.Method = "GET";
req.Accept = "application/json";
req.BeginGetResponse((cb) =>
{
HttpWebRequest rq = cb.AsyncState as HttpWebRequest;
HttpWebResponse resp = rq.EndGetResponse(cb) as HttpWebResponse;
string result;
using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
{
result = reader.ReadToEnd();
reader.Close();
}
}, req);
}
我想我可以填充之後我做reader.ReadToEnd(),但我在哪裏實際上將返回的對象呢?我不能在回調函數中返回它,但是如果我在GetMyObject()的末尾返回它,那麼由於異步回調,對象不能保證被填充。
在此先感謝!
感謝這麼多的詳細解釋和例子。真的很感激它! – TeeZee