using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Xml.Serialization; using NPOI.HSSF.UserModel; using NPOI.XSSF; using NPOI.XSSF.UserModel; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //XML序列化对象集合 //Department dep = new Department(); //dep.Name = "事业部"; //dep.Teams = new List<Team>(); //dep.Teams.Add(new Team("Test", "测试团队")); //dep.Teams.Add(new Team("Develop", "开发团队")); //dep["Test"].Persons = new List<Person>(); //dep["Test"].Persons.Add(new Person("dwf", 22, "程序", "测试工程师")); //dep["Test"].Persons.Add(new Person("WL", 22, "代码", "测试工程师")); //dep["Develop"].Persons = new List<Person>(); //dep["Develop"].Persons.Add(new Person("dwf", 22, "程序", "开发工程师")); //dep["Develop"].Persons.Add(new Person("WL", 22, "代码", "高级开发工程师")); //XmlSerializer serializer = new XmlSerializer(dep.GetType()); //TextWriter writer = new StreamWriter("Department.xml"); //serializer.Serialize(writer, dep); //writer.Close(); //Machine = "WB01", Type = "BLT&Tilting", Project = "S010", Sample = 5 //FileFormat file = new FileFormat(); //file.Name = "IT"; //file.Modules = new List<Module>(); //file.Modules.Add(new Module("WB01", "BLT&Tilting", "S010", 5,"Format1")); //file.Modules.Add(new Module("WB02", "BTT&Tilting", "T4061", 5, "Format1")); //XmlSerializer serializer = new XmlSerializer(file.GetType()); //TextWriter writer = new StreamWriter("Formats.xml"); //serializer.Serialize(writer, file); //writer.Close(); //反序列化XML数据为对象集合 //XmlSerializer serializer = new XmlSerializer(typeof(Department)); //FileStream stream = new FileStream("Department.xml", FileMode.Open); //Department dep = (Department)serializer.Deserialize(stream); //stream.Close(); XmlSerializer serializer = new XmlSerializer(typeof(FileFormat)); FileStream stream = new FileStream("Formats.xml", FileMode.Open); FileFormat obj = (FileFormat)serializer.Deserialize(stream); stream.Close(); } } public class FileFormat { [XmlAttribute] public string Name { get; set; } public List<Module> Modules; public Module this[string Name] { get { Module m = null; foreach (Module te in Modules) { if (string.Compare(te.Name, Name) == 0) { m = te; break; } } return m; } } } public class Module { public string Name; public string Machine; public string Type; public string Project; public int Sample; public Module() { } public Module(string machine,string type,string project ,int sample, string name) { this.Machine = machine; this.Type = type; this.Project = project; this.Sample = sample; this.Name = name; } } public class Department { public Department() { } [XmlAttribute] public string Name; public List<Team> Teams; public Team this[string Name] { get { Team t = null; foreach (Team te in Teams) { if (string.Compare(te.Name, Name) == 0) { t = te; break; } } return t; } } } public class Team { public Team() { } public Team(string Name, string Title) { this.Name = Name; this.Title = Title; } public string Name; public string Title; public List<Person> Persons; } public class Person { public Person() { } public Person(string Name, int Age, string Hobby, string Station) { this.Name = Name; this.Age = Age; this.Hobby = Hobby; this.Station = Station; } public string Name; public int Age; public string Hobby; public string Station; } }