如何使用属性标记C#类以使其可序列化?

时间:2013-06-25 15:11:36

标签: c# xml .net-4.0

所以我上课了。我想让它可序列化(进入XML和返回)。我知道如何使用Xml.Linq进行序列化..但它是通过手工序列化 - 当我标记类并使其前后序列化时,它是[ProtoContract] and other attributes的自动化类似protobuf。

所以我想要挥手

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#类以使其可序列化?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

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