Я пытаюсь получить службу WCF, которая возвращает список, содержащий экземпляры классов, которые наследуются от A, но когда "базовое соединение неожиданно закрывается", когда служба возвращает список.
У меня есть следующее
[DataContract]
[Serializable]
public class A { ... }
[DataContract]
[Serializable]
public class B : A { ... }
[DataContract]
[Serializable]
public class C : A { ... }
У меня тогда есть служба, определенная как
[ServiceContract( NameSpace = "Name.Space" )]
public interface I
{
[OperationContract]
List<A> GetList();
}
Если я попытаюсь вернуть список следующим образом
List<A> list = new List<A>()
{
new B(),
new C()
}
Я получаю вышеуказанную ошибку в прокси-классе.
Если изменить службу, чтобы она возвращала List , и просто добавить к ней Bs, то она вернется нормально, поэтому я думаю, что это связано с тем, что WCF испытывает трудности с подтипами.
Я попытался добавить
[ServiceKnownType( typeof( B ) )]
[ServiceKnownType( typeof( C ) )]
К определению класса A, безрезультатно.
Итак, можно ли вернуть список подтипов в том же списке через WCF?
Если так, что я пропускаю / делаю неправильно?
Заранее благодарим за любую помощь, которую вы можете оказать