WCFで抽象クラスのDataContractを定義するにはどうすればよいですか?
WCFを使用して正常に通信するクラス「Person」があります。次に、Personから参照される新しいクラス「Foo」を追加します。すべてまだ良いです。しかし、Fooを抽象化し、代わりにサブクラスを定義すると、失敗します。サーバー側ではCommunicationExceptionで失敗しますが、それはあまりわかりません。
テスト用に作成された簡略化されたクラス:
[DataContract]
public class Person
{
public Person()
{
SomeFoo = new Bar { Id = 7, BaseText = "base", SubText = "sub" };
}
[DataMember]
public int Id { get; set; }
[DataMember]
public Foo SomeFoo { get; set; }
}
[DataContract]
public abstract class Foo
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string BaseText { get; set; }
}
[DataContract]
public class Bar : Foo
{
[DataMember]
public string SubText { get; set; }
}