【问题标题】:XmlSerializer to serialize a class, i want child tag names as given in a public propertyXmlSerializer 序列化一个类,我想要公共属性中给出的子标签名称
【发布时间】:2012-05-15 15:16:10
【问题描述】:

我正在使用 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> 

【问题讨论】:

    标签: .net xmlserializer


    【解决方案1】:

    XmlSerializer 不支持这一点,请注意,因为它无法提前知道.Name 映射到&lt;AP&gt; 中的AP,所以它无法反序列化它。

    要使用XmlSerializer 做到这一点,您必须实现IXmlSerializable,这需要大量工作;但是,我怀疑使用 DOM 之类的东西(例如XElement)会更容易。

    TL;DR; 版本

    不要将XmlSerializer 用于XmlSerializer 对您没有帮助的情况

    【讨论】:

      【解决方案2】:

      AFAIK 你可以通过实现IXmlSerializable 自行实现

      【讨论】:

        猜你喜欢
        • 2010-10-09
        • 2016-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多