Dra*_*cir 1 silverlight web-services
我有一个webservice调用一个方法返回一个类的泛型列表,BodyPartUrls如下所示:
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;
}
Run Code Online (Sandbox Code Playgroud)
BodyPartUrls只包含字符串和整数属性,请注意ydc引用的是datacontext.这是webservice中的代码:
[WebMethod]
public List<BodyPartUrls> getCharacterClassBody(int characterClassID)
{
return b.getCharacterClassBody(characterClassID);
}
Run Code Online (Sandbox Code Playgroud)
现在在Silverlight中调用该方法,我使用了以下代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
该方法pu.GetUrlForResource获取托管webservice的URL,以下是方法bsc_getCharacterClassBodyCompleted:
void bsc_getCharacterClassBodyCompleted(object sender, Yambushi.BodiesRef.getCharacterClassBodyCompletedEventArgs e)
{
bpulist = e.Result;
}
Run Code Online (Sandbox Code Playgroud)
bpulist是BodyPartUrls的通用列表,由于某种原因e.Result返回ObservableCollection而不是通用列表.我有类似的代码来检索其他工作正常的通用列表,所以我真的不明白为什么这个行为不同.
| 归档时间: |
|
| 查看次数: |
3434 次 |
| 最近记录: |