私は持っている:
[DataContract]
public class A
{
[DataMember]
public int X { get; set; }
}
[DataContract]
[KnownType(typeof(Derived<A>))]
public class Base {}
[DataContract]
public class Derived<T>: Base {
[DataMember]
public T Data {get; set; }
}
Service メソッドは、Derived クラスのオブジェクトを含む Base クラスの IEnumerable を返します。自動生成された WCF クライアントはデータを取得し、型を正しく検出して Derived クラスのインスタンスを作成しますが、Derived.Data.X はマップされていません。つまり、0 です。受信した SOAP メッセージは正しいです。派生クラスのジェネリック プロパティがクライアントの SOAP メッセージから正しくマップされない理由はありますか?