.net以紧凑的、人类可读的方式序列化XML

本文关键字:方式 序列化 XML net 人类 | 更新日期: 2023-09-27 18:08:21

我正在序列化一个结构,结果是这样的输出:

<NachrichtenKonfiguration>
  <Elemente>
    <Element>
      <Typ>Bool</Typ>
      <Bezeichnung>Gut</Bezeichnung>
    </Element>
    <Element>
      <Typ>Int</Typ>
      <Bezeichnung>Dauer</Bezeichnung>
    </Element>
  </Elemente>
  <Name>Teiledaten</Name>
</NachrichtenKonfiguration>

我希望它是这样的:

<NachrichtenKonfiguration Name="Teiledaten">
  <Elemente>
    <Element Typ="Bool" Bezeichnung="Gut"/>
    <Element Typ="Int" Bezeichnung="Schleifdauer"/>
  </Elemente>
</NachrichtenKonfiguration>

是否有可能使XmlSerialzer/XmlWriter这样做(使用属性而不是嵌套元素)?

问候,蒂姆

.net以紧凑的、人类可读的方式序列化XML

好的,我知道了,您只需要在相应的声明上添加[XmlAttribute]-标签。

这是如何。如果你有一个名为"Person"的类,并且其中有两个属性,那么像这样编写代码:

[Serializable]
public class Person
{
    [XmlAttribute]
    public int Age;
    [XmlAttribute]
    public string Name;
    public Person()
    {
    }
}

当序列化(使用XmlWriter设置为缩进行)上述结构时,会产生以下xml代码:

<Person Age="21" Name="Stacky" />