如何用属性标记C#类,使其具有XML可序列化性

本文关键字:XML 序列化 属性 何用 | 更新日期: 2023-09-27 18:19:47

所以我有一个类。我想使它可串行化(转换成XML并返回)。我知道如何使用Xml.Linq来序列化。。但当我标记类并使其可前后序列化时,它是通过手工而非自动化的类似protobuf及其[ProtoContract]和其他属性进行序列化的。

所以我想知道谁在挥舞

public class Entries {
    public List<Entry> Entries {get; set;}
}
public class Entry {
    public string Id {get; set;}
    public string Path {get; set;}
}

获取类似XML的:

<entries>
    <entry id="value" path="value"/>
</entries>

那么,如何用属性标记C#类,使其具有XML可序列化性呢?

如何用属性标记C#类,使其具有XML可序列化性

为此需要使用[XmlRoot][XmlAttribute]等属性。可以将XML元素名称指定为属性上的参数。

请参阅http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlrootattribute.aspx以及命名空间中可使用的属性的其余属性。

您需要向类和与XML匹配的类成员添加属性,例如:-

[Serializable]
[XmlRoot("RootNode")] 
public class Example
{
    [XmlElement("Foo")]
    public string Foo { get; set; }
    [XmlElement("Bar")]
    public string Bar { get; set; }
}