Как определить DataContract для абстрактных классов в WCF?
У меня есть класс "Человек", с которым я успешно общаюсь с использованием WCF. Теперь я добавляю новый класс "Foo", на который ссылается Person. Все по-прежнему хорошо. Но когда я делаю абстракцию 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; }
}