2009-04-13 48 views
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而不是通用列表。我有類似的代碼來檢索其他通用列表,這些列表工作正常,所以我真的不明白爲什麼這是不同的行爲。

回答

5

單擊「配置服務參考」。在「數據類型」部分下,您可以選擇希望集合或字典返回的類型。

+0

heh甚至不需要粘貼所有的代碼,乾杯 – Drahcir 2009-04-13 21:21:19

相關問題