XmlSerializer序列化一个类,我希望在公共属性中给出子标记名称

时间:2012-05-15 07:06:40

标签: .net xmlserializer

我正在使用XmlSerializer来序列化一个具有对象列表的类 现在正在发生的事情是,子标签名称是从类名中取名,但我想要的是它从子类中的公共字段中获取名称。请帮助,哪个xml属性应该是用它来使它工作。

我有这段代码:

SessionAnalyser sa = new SessionAnalyser();
Circle c = new Circle();
c.Name = "AP";// I want this property as the TAG Name

XML O / P我得到了:

<SessionAnalyser>
<Circle>
<Name>AP</Name>
...
</Circle>
</SessionAnalyser> 

必需的XML O / P:

<SessionAnalyser>
<AP>
...
</AP>
</SessionAnalyser> 

2 个答案:

答案 0 :(得分:1)

XmlSerializer不支持这一点,请注意,因为它无法知道.Name提前<AP>映射到AP,因此无法对其进行反序列化。< / p>

要使用XmlSerializer执行此操作,您必须实施IXmlSerializable,这是一项很多工作;但是,我怀疑使用像DOM这样的东西(例如XElement)会更容易。

TL; DR; 版本

  

不要将XmlSerializer用于XmlSerializer无法帮助您的方案

答案 1 :(得分:0)

您可以通过实施IXmlSerializable

自行申请AFAIK