2013-05-31 52 views
0

我們有一些自定義的集合,如本:自定義集合空當通過WCF服務通過

[Serializable] 
public class OccupationCollection : Collection<Occupation> 
{ 
} 

我們使用這些中的對象如下所示:

private OccupationCollection _occupations; 

    public OccupationCollection CurrentOccupations 
    { 
     get 
     { 
      if (this._occupations == null) 
       return new OccupationCollection(); 
      else 
       return _occupations; 
     } 
    } 

現在我們正在調用一個WCF服務,傳遞包含這些類型的列表的對象。列表總是最終在服務中爲空。

我敢肯定,這與序列化或類似的東西有關。

什麼是最簡單的解決方案,將需要對現有對象進行最小限度的更改才能使其工作?

+0

你有你的自定義集合中的任何非序列化的類型?比如像'DataTable'一樣? – Tim

+0

「包含這些列表類型的對象」您能向我們展示這些嗎? – khlr

回答

0

您是否通過HTTP託管了您的服務? 如果是,您可以使用fiddler檢查HTTP通信並確認參數的串行化版本是否通過線路發送?如果是,則服務器和客戶端之間的合同中可能存在參數不匹配。 也是持有OccupizableCollection的對象用Serializable/DataContract屬性裝飾的?如果您具有DataContract屬性,請確保需要序列化的屬性標有Datamember屬性。

更多細節在這裏.. http://blog.functionalfun.net/2009/09/if-your-wcf-service-is-unexpectedly.html