具有多态子对象的Json.Net序列化

我们希望能够从/向C#类序列化/反序列化json,主类具有多态子对象的实例。使用Json.Net的TypeNameHandling.Auto设置很容易。但是,我们希望在没有“$ type”字段的情况下这样做。


第一个想法是能够将“$ type”重命名为我们选择的值,并使该类型的值为枚举,以便正确映射子类型。我没有看到这是一个选项,但很高兴听到是否有可能。


第二个想法是沿着以下几行......下面是类的第一次传递,顶级类有一个指示符(SubTypeType),关于子对象(SubTypeData)中包含的数据类型。我已经挖了一些Json.Net文档,并尝试了一些东西,但没有运气。


我们目前完全控制数据定义,但一旦部署,就会锁定。


public class MainClass

{

  public SubType          SubTypeType { get; set; }

  public SubTypeClassBase SubTypeData { get; set; }

}


public class SubTypeClassBase

{

}


public class SubTypeClass1 : SubTypeClassBase

{

  public string AaaField { get; set; }

}


public class SubTypeClass2 : SubTypeClassBase

{

  public string ZzzField { get; set; }

}


慕田峪4524236
浏览 619回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP