using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Xml.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization.Formatters.Soap; namespace Serialization { class Program { static void Main(string[] args) { Student stu = new Student("张三", 30, "登山"); ////二进制序列化 //BinaryFormatter bf = new BinaryFormatter(); //FileStream fs = new FileStream(@"D:\stu.ss", FileMode.Create); //bf.Serialize(fs, stu); //fs.Close(); ////二进制反序列化 //BinaryFormatter bf = new BinaryFormatter(); //FileStream fs = new FileStream(@"D:\stu.ss", FileMode.Open); //Student student = (Student)bf.Deserialize(fs); //student.method(); ////xml序列化 //XmlSerializer xml = new XmlSerializer(typeof(Student)); //FileStream fs = new FileStream(@"D:\stu.xml",FileMode.Create); //xml.Serialize(fs, stu); //fs.Close(); ////xml反序列化 //XmlSerializer xml = new XmlSerializer(typeof(Student)); //FileStream fs = new FileStream(@"D:\stu.xml", FileMode.Open); //Student student = (Student)xml.Deserialize(fs); //student.method(); ////soap序列化 //SoapFormatter soap = new SoapFormatter(); //FileStream fs = new FileStream(@"D:\stu.soap", FileMode.Create); //soap.Serialize(fs, stu); //fs.Close(); //soap反序列化 SoapFormatter soap = new SoapFormatter(); FileStream fs = new FileStream(@"D:\stu.soap", FileMode.Open); Student student = (Student)soap.Deserialize(fs); student.method(); } } [Serializable] public class Person { public Person() { } public Person(string name, int age) { this.Name = name; this.Age = age; } public string Name { get; set; } public int Age { get; set; } } [Serializable] public class Student : Person { public Student() { } public Student(string name, int age, string hobby) : base(name, age) { this.Hobby = hobby; } public string Hobby { get; set; } public void method() { Console.WriteLine("大家好,我叫{0},今年{1}岁,我喜欢{2}", this.Name, this.Age, this.Hobby); //Console.ReadLine(); } } }