关于XMLSerialization对复杂类的读和写
最近,为了将一个窗口内所有控件的值保存到一个XML文件中,得研究一个如何将一个类的值全部保存到一个XML文件中的例子。
于是google
http://msdn.microsoft.com/en-us/4kaaezfd(v=vs.90)
得到了这个地址,非常好,详细地给出了读写简单类的方法。
可惜,在进行复杂类的写入的时候,就是一个类内有另外一个的时候,出问题了,于是继续g
得到了 http://blog.csdn.net/menglin2010/article/details/7165553
这个例子。非常好,但是没有关于读的内容,于是,对微软的例子进行了一定的修改之后。内容如下。
学生类 student.cs
C#代码
1. using System;
2. using System.Collections.Generic;
3. using System.Linq;
4. using System.Text;
5. using ConsoleApplication1;
6. using System.Xml;
7. using System.Xml.Serialization;
8. namespace ConsoleApplication1
9. {
10. public class student
11. {
12. //学生名字
13. private string _name;
14. [XmlElement]
15. public string name
16. {
17. get { return _name; }
18. set { _name = value; }
19. }
20. //学生年龄
21. private string _age = "";
22. [XmlElement]
23. public string age
24. {
25. get { return _age; }
26. set { _age = value; }
27. }
28. }
29. }
写出XML文件
C#代码
1. using System;
2. using System.Collections.Generic;
3. using ConsoleApplication1;
4. using System.Xml;
5. using System.Xml.Serialization;
6. namespace ConsoleApplication1
7. {
8. [Serializable()]
9. [XmlRoot]
10. public class Book
11. {
12. public string title;
13. public int page;
14. public student sname;
15. public Book()
16. {
17. }
18. private static void Main()
19. {
20. Book introToVCS = new Book();
21. introToVCS.title = "Intro to Visual CSharp";
22. introToVCS.page = 26;
23. introToVCS.sname = new student();
24. introToVCS.sname.name = "xixi";
25. introToVCS.sname.age = "15";
26. System.Xml.Serialization.XmlSerializer writer =
27. new System.Xml.Serialization.XmlSerializer(
28. introToVCS.GetType());
29. System.IO.StreamWriter file =
30. new System.IO.StreamWriter("c:\\IntroToVCS.xml");
31. writer.Serialize(file, introToVCS);
32. file.Close();
33. }
34. }
35. }
读入XML文件
C#代码
1. using System;
2. //http://msdn.microsoft.com/en-us/4kaaezfd(v=vs.90)
3. using ConsoleApplication1;
4. public class Book
5. {
6. public string title;
7. public int page;
8. public student sname;
9. public Book()
10. {
11. }
12. static void Main()
13. {
14. Book introToVCS = new Book();
15. System.Xml.Serialization.XmlSerializer reader = new
16. System.Xml.Serialization.XmlSerializer(introToVCS.GetType());
17. // Read the XML file.
18. System.IO.StreamReader file =
19. new System.IO.StreamReader("c:\\IntroToVCS.xml");
20. // Deserialize the content of the file into a Book object.
21. introToVCS = (Book)reader.Deserialize(file);
22. System.Windows.Forms.MessageBox.Show(introToVCS.title, "Book Title");
23. System.Windows.Forms.MessageBox.Show(System.Convert.ToString(introToVCS.page), "Book PAGES");
24. System.Windows.Forms.Messag
补充:Web开发 , 其他 ,