【问题标题】:Custom Collection null when passed through WCF Service通过 WCF 服务传递时自定义集合为空
【发布时间】:2013-05-31 17:00:56
【问题描述】:

我们有一些自定义集合,例如:

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

我们在如下对象中使用它们:

private OccupationCollection _occupations;

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

现在我们正在调用 WCF 服务,传递包含这些类型列表的对象。列表在服务中始终为空。

我很确定这与序列化或类似的事情有关。

什么是最简单的解决方案,需要对现有对象进行最少的更改才能使其工作?

【问题讨论】:

  • 您的自定义集合中是否有任何不可序列化的类型?比如DataTable
  • “包含这些类型列表的对象”你能把这些给我们看看吗?

标签: wcf custom-collection


【解决方案1】:

您是否通过 HTTP 托管您的服务? 如果是,您是否可以使用 fiddler 检查 HTTP 流量并确认参数的序列化版本是否正在通过网络发送?如果是,则服务器和客户端之间的合同中可能存在参数不匹配。 持有 OccupationCollection 的对象也是用 Serializable/DataContract 属性装饰的吗?如果您有 DataContract 属性,请确保需要序列化的属性使用 Datamember 属性进行标记。

更多细节在这里.. http://blog.functionalfun.net/2009/09/if-your-wcf-service-is-unexpectedly.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多