Если у вас есть производные классы, вам нужно «прорекламировать» их в договоре на данные:
[DataContract]
[KnownType(typeof(DerivedType1))]
[KnownType(typeof(DerivedType2))]
public class BaseType
{
......
}
или вы также можете указать такие отношения в контракте на обслуживание:
[ServiceKnownType(typeof(DerivedType1))]
[ServiceKnownType(typeof(DerivedType2))]
[ServiceContract()]
public interface IService
{
[OperationContract]
BaseType GetItems();
}
Ознакомьтесь с документами MSDN по Известные типы контракта данных или Известные типы обслуживания для получения дополнительной информации.