如何用属性标记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可序列化性呢?
为此需要使用[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; }
}