使用JSON.NET序列化/反序列化派生对象而不使用JsonProperty?

时间:2011-06-06 03:20:24

标签: json.net

我正在使用NewtonSoft JSON.NET库来序列化以下类,其中DTOBase可以保存派生实例。

public class Command
{         
    public DTOBase CommandDTO  { get; set; }                
}

每个this article您需要包含JsonProperty属性,以便派生的实例能够正确反序列化

public class Command
{ 

  [JsonProperty(TypeNameHandling = TypeNameHandling.All)]  
  public DTOBase CommandDTO  { get; set; }       
 }

问题是除了使用属性获得相同的结果之外是否还有其他方法?我更愿意不与NewtonSoft库和json序列化相结合,特别是在类级别。有没有办法在库的Serialize / Deserialize方法上指定一些设置来获得相同的结果?

1 个答案:

答案 0 :(得分:4)

当您致电TypeNameHandling时,可以在JsonSerializerSettings设置JsonConvert.SerializeObject(value, settings)媒体资源。

如果您只想将派生对象包含的名称设为TypeNameHandlingTypeNameHandling.Auto