Учитывая модель данных:
[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, я недостаточно глубоко в проекте, чтобы быть привязанным к одному) игнорировать свойства производного класса при сериализации в качестве базового класса?
РЕДАКТИРОВАТЬ: важно, чтобы при сериализации производного класса напрямую я мог создавать все свойства. Я только хочу запретить полиморфизм в объекте Parent
.