繁体   English   中英

隐藏在派生类中后如何在json新属性中序列化

[英]How to Serialize in json new properties after hide it in derived class

我必须上课,如:

public class Title
{
    public List<Detail> details {get; set;}

}

public class Detail
{
    // some properties
}

public class TitleChild : Title
{
    public new List<DetailChild> details {get; set;}  // hiding

}

public class DetailChild : Detail
{
    // some properties
}

我需要序列化Title List<Title>列表和TitleChild List<TitleChild>

List<Title>一切正常,但在List<TitleClild>有些事情是错误的。 在javascript中反序列化之后,我注意到details属性steel是超类中的隐藏属性。

我该怎么办 ?

而且我也不能忽略对隐藏属性的超类序列化,因为在超类的序列化时间中需要它。

序列化很可能只是遍历公共属性。 您已经使用new关键字故意隐藏了详细信息。 您可以尝试更改结构,以免使用new 在这里看起来确实很奇怪,无论如何都最好避免这样做。

例如,如果您希望同时返回两个属性,则可以将details的名称更改为childrenDetails并删除new

PS由于您的DetailChild继承自Detail ,因此您实际上可以只使用原始的details列表并用DetailChild对象填充它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM