C#实现对象的Xml格式序列化及反序列化
要序列化的對象的類:
[Serializable]
public?class?Person
{
private?string?name;
public?string?Name
{
get
{
return?name;
}
set
{
name=value;
}
}
public?string?Sex;
public?int?Age=31;
public?Course[]?Courses;
public?Person()
{
}
public?Person(string?Name)
{
name=Name;
Sex="男";
}
}
[Serializable]
public?class?Course
{
public?string?Name;
[XmlIgnore]public?string?Description;
public?Course()
{
}
public?Course(string?name,string?description)
{
Name=name;
Description=description;
}
}?
進行序列化及反序列化的測試類:
class?Test
{
//序列化
public?void?Serialiaze()
{
Person?c=new?Person("cyj")
c.Courses=new?Course[2];
c.Courses[0]=new?Course("英語","交流工具")
c.Courses[1]=new?Course("數學","自然科學")
XmlSerializer?xs=new?XmlSerializer(typeof(Person));
Stream?stream?=?new?FileStream("c://cyj.xml",?FileMode.Create,?FileAccess.Write,?FileShare.ReadWrite);
xs.Serialize(stream,?c);
stream.Close();
}
//反序列化
public?void?Deserialize()
{
XmlSerializer?xs=new?XmlSerializer(typeof(Person));
Stream?stream?=?new?FileStream("c://cyj.xml",?FileMode.Open,?FileAccess.Read,?FileShare.ReadWrite);
Person?p=(Person)xs.Deserialize(stream);
Console.WriteLine(p.Name);
Console.WriteLine(p.Age.ToString());
Console.WriteLine(p.Courses.Length.ToString());
Console.Read();
}
}
格式化后Xml的文檔內容為:
<?xml?version="1.0"?>
<Person?xmlns:xsd=http://www.w3.org/2001/XMLSchema??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
?<Sex>男</Sex>
??<Age>31</Age>
??<Courses>
????<Course>
??????<Name>英語</Name>
????</Course>
????<Course>
??????<Name>數學</Name>
????</Course>
??</Courses>
??<Name>cyj</Name>
</Person>
總結
以上是生活随笔為你收集整理的C#实现对象的Xml格式序列化及反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我撞了南墙才会回头吧是什么歌呢?
- 下一篇: C#字符串处理类