Для модели данных:
[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
.