Для модели данных:
[DataContract]
public class Parent
{
[DataMember]
public IEnumerable<ChildId> Children { get; set; }
}
[DataContract]
public class ChildId
{
[DataMember]
public string Id { get; set; }
}
[DataContract]
public class ChildDetail : ChildId
{
[DataMember]
public string Name { get; set; }
}
По соображениям удобства использования бывают случаи, когда объекты ChildId на Parent являются фактически объектами ChildDetail. Когда я использую JSON.net для сериализации Parent, они записываются со всеми свойствами ChildDetail.
Есть ли способ проинструктировать JSON.net(или любой другой JSON-сериализатор, я недостаточно далеко, чтобы проект был привязан к нему), чтобы игнорировать свойства производного класса при сериализации в качестве базового класса?
EDIT: Важно, что когда я сериализую производный класс напрямую, я могу произвести все свойства. Я хочу только запретить полиморфизм в объекте Parent.