У меня есть веб-сервиса, который вызывает метод, который возвращает общий список класса BodyPartUrls
как так:Silverlight: метод Webservice возвращения ObservableCollection вместо Generic List
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 ссылается на datacontext. Этот код в веб-сервиса:
[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
прибудете это URL-адрес, где находится состоялся вебсервис, следующее метод bsc_getCharacterClassBodyCompleted
:
void bsc_getCharacterClassBodyCompleted(object sender, Yambushi.BodiesRef.getCharacterClassBodyCompletedEventArgs e)
{
bpulist = e.Result;
}
bpulist
является общим перечнем BodyPartUrls, по какой-то причине e.Result
я s возвращает ObservableCollection вместо общего списка. У меня есть аналогичный код, чтобы получить другие общие списки, которые работают нормально, поэтому я действительно не могу понять, почему это действует по-другому.
Хех даже не нужно вставлять весь этот код, приветствия – Drahcir