子曾经曰过

  博客园  :: 首页  ::  ::  ::  :: 管理
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap; //需要添加这个dll否则无法找到这个命名空间
using System.Xml.Serialization;
using System.IO;

namespace SerializingExample
{
class Program
{
static void Main(string[] args)
{
#region 变量声明
//Remoting序列化有3种方式 二进制,soap,xml
SerializeObject so = new SerializeObject();
so.name
= "需要序列化的对象的一个字段内容";
#endregion


#region 二进制序列化
IFormatter binaryformatter
= new BinaryFormatter(); //命名空间 using System.Runtime.Serialization.Formatters.Binary;
FileStream binarystream = new FileStream(@"d:\temp\SerializeObject.bin", FileMode.Create); //二进制的格式后缀可以是dll
binaryformatter.Serialize(binarystream, so);
binarystream.Close();
//需要关闭流

// 二进制反序列化
//以流方式打开要反序列化的文件
FileStream binarystreamDe = new FileStream(@"d:\temp\SerializeObject.bin", FileMode.Open);
//重要的一点是反序列化后得到一个Object对象,需要你来显式转换成序列化前的类型,等于得到一个类型实例
SerializeObject BinaryDeserializeObject = binaryformatter.Deserialize(binarystreamDe) as SerializeObject;
//操作得到的类型实例
Console.WriteLine("反序列化二进制方式:" + BinaryDeserializeObject.name);
#endregion


#region SOAP序列化
//序列化
IFormatter soapformatter = new SoapFormatter();
FileStream soapstream
= new FileStream(@"d:\temp\SerializeObject.soap", FileMode.Create);
soapformatter.Serialize(soapstream, so);
soapstream.Close();
//反序列化
FileStream soapstreamDe = new FileStream(@"d:\temp\SerializeObject.soap", FileMode.Open);
SerializeObject SoapDeserializeObject
= soapformatter.Deserialize(soapstreamDe) as SerializeObject;
Console.WriteLine(
"反序列化SOAP方式:" + SoapDeserializeObject.name);
#endregion


#region XML序列化
//序列化
XmlSerializer xmlformatter = new XmlSerializer(typeof(SerializeObject));
FileStream xmlstream
= new FileStream(@"d:\temp\SerializeObject.xml", FileMode.Create);
xmlformatter.Serialize(xmlstream, so);
xmlstream.Close();
//反序列化
FileStream xmlstreamDe = new FileStream(@"d:\temp\SerializeObject.xml", FileMode.Open);
SerializeObject XmlDeserializeObject
= xmlformatter.Deserialize(xmlstreamDe) as SerializeObject;
Console.WriteLine(
"反序列化XML方式:" + XmlDeserializeObject.name);
#endregion

Console.ReadLine();
}
}

[Serializable]
public class SerializeObject
{
public string name;
public void show(string str)
{
Console.WriteLine(str);
}
}

}
posted on 2011-03-04 14:35  人的本质是什么?  阅读(408)  评论(0编辑  收藏  举报