using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; using System.Runtime.Serialization.Formatters.Binary; ///<summary> /// ClassToSerialize 的摘要说明 ///</summary> [Serializable] publicclass ClassToSerialize { publicintid =100; publicstringname ="Name"; [NonSerialized] publicstringSex ="男"; } 下面是串行化和反串行化的方法:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml.Serialization; [Serializable] publicclass Person { privatestring name; publicstring Name { get { return name; } set { name = value; } } publicstring Sex; publicintAge =31; public Course[] Courses; public Person() { } publicPerson(string Name) { name = Name; Sex ="男"; } } [Serializable] publicclass Course { publicstring Name; [XmlIgnore] publicstring Description; public Course() { } publicCourse(stringname, string description) { Name = name; Description = description; } } 序列化和反序列化方法:
publicvoid XMLSerialize() { Person c =newPerson("cyj"); c.Courses =newCourse[2]; c.Courses[0] =newCourse("英语", "交流工具"); c.Courses[1] =newCourse("数学","自然科学"); XmlSerializer xs =newXmlSerializer(typeof(Person)); Stream stream =newFileStream("c:\\cyj.XML",FileMode.Create,FileAccess.Write,FileShare.Read); xs.Serialize(stream,c); stream.Close(); } publicvoid XMLDeserialize() { XmlSerializer xs =newXmlSerializer(typeof(Person)); Stream stream =newFileStream("C:\\cyj.XML",FileMode.Open,FileAccess.Read,FileShare.Read); Person p =xs.Deserialize(stream) as Person; Response.Write(p.Name); Response.Write(p.Age.ToString()); Response.Write(p.Courses[0].Name); Response.Write(p.Courses[0].Description); Response.Write(p.Courses[1].Name); Response.Write(p.Courses[1].Description); stream.Close(); } 这里Course类的Description属性值将始终为null,生成的xml文档中也没有该节点,如下图: