Javascript 在派生类中隐藏新属性后如何在json中序列化新属性
我必须学习父类,例如:Javascript 在派生类中隐藏新属性后如何在json中序列化新属性,javascript,c#,serialization,Javascript,C#,Serialization,我必须学习父类,例如: 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
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
}
公共类标题
{
公共列表详细信息{get;set;}
}
公共类详细信息
{
//一些性质
}
公共类标题儿童:标题
{
公共新列表详细信息{get;set;}//隐藏
}
公共类DetailChild:详细信息
{
//一些性质
}
我需要序列化标题列表list
和标题列表childlist
在列表
中一切正常,但在列表
中有些事情是错误的。
在javascript中反序列化之后,我注意到细节属性steel是超类中的隐藏属性
我该怎么办
而且我不能忽略对隐藏属性是超类的序列化,因为我需要在超类上序列化它。序列化很可能只遍历公共属性。您故意用
new
关键字隐藏了您的详细信息。您可以尝试更改结构,以便不使用new
。这里真的很奇怪,无论如何你最好避免
例如,如果您想要恢复这两个属性,您可以将详细信息
的名称更改为childrenDetails
并删除new
另外,由于您的
DetailChild
继承自Detail
,实际上,您只需使用原始的详细信息
列表,并用DetailChild
对象填充它。任何数据都是一样的:您需要特殊类型,或者类型信息必须是消息的一部分,但是反序列化程序如何知道何时创建DetailChild实例?这是主要问题