WCFサービス(ネットTCPバインディング)を介して送信したいCLRクラスがあります。クライアントとサーバーの両方が同じデータクラスとサービスインターフェイスを使用します。スタブは生成されません。2つのクラスの基本的な部分は次のとおりです。
[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
失敗し、次のエラーメッセージが表示されます。
サーバーは意味のある応答を提供しませんでした。これは、コントラクトの不一致、セッションの早期シャットダウン、または内部サーバーエラーが原因である可能性があります。
契約の不一致は設計上不可能です。おそらく、通知されていない内部サーバーエラーがあります。
この問題を解決して、サーバーにアイテムをクライアントに送信させるにはどうすればよいですか?