2013-05-31 30 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