0

私は持っている:

[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 メッセージから正しくマップされない理由はありますか?

4

1 に答える 1