xml序列化和反序列化(隐藏一个节点头)
本文关键字:一个 节点 隐藏 序列化 反序列化 xml | 更新日期: 2023-09-27 17:58:48
我有一个XML文件,需要对它进行反序列化。在不绕过所有节点的情况下,只需将XML文件反序列化为对象即可。
是否可以从结果ActionGetSiteResultData中隐藏,或者只隐藏一种方法使用自定义序列化/反序列化?
类别:
// root
public Result Result { get; set; }
// rows
public class Result
{
public List<ResultData> Data { get; set; }
}
//item
public class ResultData
{
[XmlElement(ElementName = "gen_info")]
public GenInfo GenInfo { get; set; }
[XmlElement(ElementName = "hosting")]
public Hosting Hosting { get; set; }
}
结果:
<Result>
<Id>1</Id>
<Data>
<ResultData> <--- REMOVE THIS
<gen_info>
<ascii-name>sadsad</ascii-name>
</gen_info>
<hosting/>
</ResultData> <--- REMOVE THIS
</Data>
</Result>
需要:
<Result>
<Id>1</Id>
<Data>
<gen_info>
<ascii-name>sadsad</ascii-name>
</gen_info>
<hosting/>
</Data>
</Result>
<Result>
<Id>2</Id>
<Data>
<gen_info>
<ascii-name>sadsad2</ascii-name>
</gen_info>
<hosting/>
</Data>
</Result>
这应该做,但很冗长。如果不起作用,请首先在ResultData属性上尝试[XmlElement(ElementName="gen_info")]:
public class Result
{
[XmlIgnore]
public List<ResultData> Data { get; set; }
[XmlElement(ElementName = "gen_info")]
public ResultData[] __XmlSerializedData{
get{ return Data.ToArray();}
set{ Data = new List<ResultData>(value);}
}
}