using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
public void ThreeSerialize()
{
//三种方式序列化
BinaryFormatter序列化
person pBf = new person() { Name="BF",Age=1,sex="女"}; //被序列化对象
BinaryFormatter bf = new BinaryFormatter(); //格式化对象
Stream streamBf = new FileStream("c:/BinaryFormatter.txt",FileMode.OpenOrCreate,FileAccess.Write,FileShare.None); //流对象
bf.Serialize(streamBf,pBf); //实例化
streamBf.Close();
SOAPFormatter序列化
person pSoap = new person() { Name="soap",Age=2,sex="男"};
SoapFormatter soapFormatter = new SoapFormatter();
Stream streamSoap = new FileStream("c:/SOAP.txt",FileMode.OpenOrCreate,FileAccess.Write,FileShare.None);
soapFormatter.Serialize(streamSoap,pSoap);
streamSoap.Close();
XmlSerialize序列化
person pXml = new person() { Name="xmlSerilize",Age=3,sex="男"};
XmlSerializer xmlSerlizer = new XmlSerializer(typeof(person));
Stream streamXml =new FileStream("c:/XmlSerilize.txt",FileMode.OpenOrCreate,FileAccess.Write,FileShare.None);
xmlSerlizer.Serialize(streamXml,pXml);
streamXml.Close();
//三种反序列化
Stream strDBf = new FileStream("c:/BinaryFormatter.txt", FileMode.OpenOrCreate, FileAccess.Read, FileShare.None);
person DbfP=(person)bf.Deserialize(strDBf);
strDBf.Close();
Response.Write("<br/>"+DbfP.MyInfo());
Stream streamDSOAP = new FileStream("c:/SOAP.txt", FileMode.Open, FileAccess.Read, FileShare.None);
person DPerson = (person)soapFormatter.Deserialize(streamDSOAP);
strDBf.Close();
Response.Write("<br/>"+DPerson.MyInfo());
Stream streamDXml = new FileStream("c:/XmlSerilize.txt",FileMode.Open,FileAccess.Read,FileShare.None);
person xmlDperson=(person)xmlSerlizer.Deserialize(streamDXml);
streamDXml.Close();
Response.Write("<BR/>"+xmlDperson.MyInfo());
}