我有一个要通过 WCF 服务(Net TCP 绑定)发送的 CLR 类。客户端和服务器都使用相同的数据类和服务接口。没有生成存根。以下是两个类的基本部分:
[DataContract]
public class ContainerClass
{
//some primitive data with [DataMember] ...
[DataMember] /**/
public virtual BindingList<ItemClass> Items{ get; private set; }
}
[DataContract]
public class ItemClass
{
//some primitive data with [DataMember] ...
public ContainerClass Parent { get; set; } // (no [DataMember])
}
如果我省略了(标有)的[DataMember]
属性,则数据被正确传输。当然,没有物品。BindingList
/**/
只要我添加[DataMember]
,对返回类型对象的服务方法的调用ContainerClass
就会失败,并显示以下错误消息:
服务器没有提供有意义的回复;这可能是由于合同不匹配、会话过早关闭或内部服务器错误造成的。
合同错配在设计上是不可能的。可能有一个内部服务器错误,我没有收到通知。
我该如何解决这个问题并使服务器将项目发送给客户端?