【发布时间】:2019-06-14 00:30:57
【问题描述】:
是否有任何 JsonSerializerSettings 可用于仅序列化派生类型。
例如,考虑我有以下两个班级。当我序列化 Employee 对象时,结果 json 应该只包含雇员的属性而不是人员类。
public class Person
{
public string Name { get; set; }
}
public class Employee : Person
{
public DateTime JoiningDate { get; set; }
public string EmployeeId { get; set;}
}
【问题讨论】:
-
在序列化
Person的子类型时是否总是希望Name被忽略?如果是这样,只需一个简单的忽略属性就可以解决问题。 -
这只是我给出的一个例子。但我真正的基类有多个属性和深入的对象图。所以只是不想序列化任何基类属性。
-
按照 mason 的建议,使用 JsonIgnore 属性标记基类中的属性。这应该可以解决问题。
-
如果仍然存在您可能希望序列化 Person(或任何子类型)具有基类属性的情况,则忽略属性将不起作用。我认为通过创建一个数据传输对象然后对其进行序列化会更好。也许使用AutoMapper 之类的东西从您的 Employee 对象转到您的 DTO。