您的位置:首页 > 其它

xml序列化及反序列化.net对象

2016-05-05 07:36 519 查看
序列化一个类通常添加[XmlRoot("根节点名字")] 找到要序列化的内容

对要序列化的类添加 [Serializable]属性用于序列化

对于要序列化的字段添加 [XmlElement("序列化对应的节点名字,即字段的别名")]

<Headmaster IsAssistant="false">
private bool _isAssistant;
[XmlAttribute("IsAssistant")]
public bool IsAssistant
{
get
{
return _isAssistant;
}

set
{
_isAssistant = value;
}
}

<Name>June</Name>
[XmlText()]
public string Name
{
get
{
return _name;
}

set
{
_name = value;
}
}

<Classes>
<Class>
<Teacher>
<Name>June</Name>
<Sex>O</Sex>
<Age>30</Age>
</Teacher>
<Students>
<Student>
<Name>Student1</Name>
<Sex>I</Sex>
<Age>10</Age>
</Student>
</Students>
</Class>
<Class>
<Teacher>
<Name>Sam</Name>
<Sex>I</Sex>
<Age>32</Age>
</Teacher>
<Students>
<Student>
<Name>Student2</Name>
<Sex>O</Sex>
<Age>10</Age>
</Student>
<Student>
<Name>Student3</Name>
<Sex>I</Sex>
<Age>10</Age>
</Student>
<Student>
<Name>Student4</Name>
<Sex>O</Sex>
<Age>10</Age>
<Skill>DB</Skill>
<Skill>C#</Skill>
</Student>
</Students>
</Class>
</Classes>

private List<Class> _classes = new List<Class>();
[XmlArray("Classes")]
[XmlArrayItem("Class")]
public List<Class> Classes
{
get
{
return _classes;
}
}


[Serializable]:用于标志这个类是可进行序列化的。注意此属性只能用于类定义上,另外类也可以通过实现System.Runtime.Serialization.ISerializable进行自定义序列化控制。

[XmlRoot]:用于定义xml根节点的节点名称。

[XmlElement]:用于定义类属性在序列化中对应节点的名称。

[XmlIgnore]:标志此属性不参与序列化。

[XmlArray]:通常与[XmlArrayItem]配合使用,定义数组的父节点名称与子节点名称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: