C#序列化和反序列化
序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。我想最主要的作用有:
1、在进程下次启动时读取上次保存的对象的信息
2、在不同的AppDomain或进程之间传递数据
3、在分布式应用系统中传递数据
......
在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化
本文就通过一个小例子主要说说这三种方法的具体使用和异同点
这个例子就是使用三种不同的方式把一个Book对象进行序列化和反序列化,当然这个Book类首先是可以被序列化的。至于怎么使一个类可以序列化可以参见:C#强化系列文章一:ViewState使用兼谈序列化
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifBook类
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->http://www.cnblogs.com/Images/OutliningIndicators/None.gifusingSystem;
http://www.cnblogs.com/Images/OutliningIndicators/None.gifusingSystem.Collections;
http://www.cnblogs.com/Images/OutliningIndicators/None.gifusingSystem.Text;
http://www.cnblogs.com/Images/OutliningIndicators/None.gif
http://www.cnblogs.com/Images/OutliningIndicators/None.gifnamespaceSerializableTest
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicclassBook
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicBook()
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifalBookReader=newArrayList();
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicstringstrBookName;
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicstringstrBookPwd;
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifprivatestring_bookID;
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicstringBookID
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifgethttp://www.cnblogs.com/Images/dot.gif{return_bookID;}
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifsethttp://www.cnblogs.com/Images/dot.gif{_bookID=value;}
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicArrayListalBookReader;
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifprivatestring_bookPrice;
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicvoidSetBookPrice(stringprice)
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif_bookPrice=price;
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifpublicvoidWrite()
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifConsole.WriteLine("BookID:"+BookID);
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifConsole.WriteLine("BookName:"+strBookName);
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifConsole.WriteLine("BookPassword:"+strBookPwd);
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifConsole.WriteLine("BookPrice:"+_bookPrice);
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifConsole.WriteLine("BookReader:");
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.giffor(inti=0;i<alBookReader.Count;i++)
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gifConsole.WriteLine(alBookReader);
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
http://www.cnblogs.com/Images/OutliningIndicators/None.gif
页:
[1]