2009-04-13 5 views
1

У меня есть веб-сервиса, который вызывает метод, который возвращает общий список класса 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 вместо общего списка. У меня есть аналогичный код, чтобы получить другие общие списки, которые работают нормально, поэтому я действительно не могу понять, почему это действует по-другому.

ответ

5

Нажмите «Настроить сервисную ссылку». В разделе «Тип данных» вы можете выбрать тип, который хотите, чтобы коллекции или словари возвращались как.

+0

Хех даже не нужно вставлять весь этот код, приветствия – Drahcir