1
我有一個Web服務調用返回BodyPartUrls
類的,像這樣一個泛型列表的方法:的Silverlight:Webservice的方法返回的ObservableCollection而不是泛型列表
public List<BodyPartUrls> getCharacterClassBody(int characterClassID)
{
var bpulst = new List<BodyPartUrls>();
var iqcb = ydc.ClassBodies.Where(cb => cb.characterClassID == characterClassID);
foreach (var icb in iqcb)
{
var bpu = new BodyPartUrls();
bpu.bodyPartName = icb.BodyPart.bodyPartName;
bpu.bodyName = icb.Body.bodyName;
bpu.puppetID = characterClassID;
bpulst.Add(bpu);
}
return bpulst;
}
BodyPartUrls只包含字符串和整數性能,請注意ydc指的是一個數據上下文。這在Web服務代碼:
[WebMethod]
public List<BodyPartUrls> getCharacterClassBody(int characterClassID)
{
return b.getCharacterClassBody(characterClassID);
}
我們調用的方法在Silverlight我utalised下面的代碼:
public void initialiseBodiesSoapClientClient()
{
string webServiceUrl = pu.GetUrlForResource("Bodies.asmx");
System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();
EndpointAddress endpoint = new EndpointAddress(webServiceUrl);
bsc = new BodiesRef.BodiesSoapClient(binding, endpoint);
bsc.getCharacterClassBodyCompleted += new EventHandler<Yambushi.BodiesRef.getCharacterClassBodyCompletedEventArgs>(bsc_getCharacterClassBodyCompleted);
}
的方法pu.GetUrlForResource
GET的WHERE web服務託管的網址,以下是方法bsc_getCharacterClassBodyCompleted
:
void bsc_getCharacterClassBodyCompleted(object sender, Yambushi.BodiesRef.getCharacterClassBodyCompletedEventArgs e)
{
bpulist = e.Result;
}
bpulist
是BodyPartUrls的泛型列表,出於某種原因e.Result
我s返回ObservableCollection而不是通用列表。我有類似的代碼來檢索其他通用列表,這些列表工作正常,所以我真的不明白爲什麼這是不同的行爲。
heh甚至不需要粘貼所有的代碼,乾杯 – Drahcir 2009-04-13 21:21:19