CSharp学习笔记 (一)序列化类实例
2015-04-08 09:16
357 查看
XmlSerializer, DataContractSerializer 和 BinaryFormatter区别与用法分析:http://www.cnblogs.com/nankezhishi/archive/2012/05/12/serializationcompare.html
1. DataContractSerializer :所有类均可实例化,不需要加可序列化关键词
(1)序列化:
2. BinaryFormatter:类定义前需加关键词[Serializable],文件小,内容不易解读
(1)序列化:
(2)反序列化:
1. DataContractSerializer :所有类均可实例化,不需要加可序列化关键词
(1)序列化:
try { fs = new FileStream(文件名, FileMode.Create); ser = new DataContractSerializer(typeof(类名)); ser.WriteObject(fs, 类实例变量); fs.Close(); } catch (Exception ex) { Console.WriteLine(ex.Message); }(2)反序列化:
FileStream fs = new FileStream(文件名, FileMode.Open); XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(fs, new XmlDictionaryReaderQuotas()); DataContractSerializer ser = new DataContractSerializer(typeof(类名)); 类名 类实例名 = (类名)ser.ReadObject(reader, true); psidentify = new 类名(类实例名); //array to List reader.Close(); fs.Close();
2. BinaryFormatter:类定义前需加关键词[Serializable],文件小,内容不易解读
(1)序列化:
fs = new FileStream(文件名, FileMode.Create); try { formatter.Serialize(fs, 类实例名); } catch (SerializationException e) { Console.WriteLine("Failed to serialize. Reason: " + e.Message); throw; } finally { fs.Close(); }
(2)反序列化:
fs = new FileStream(文件名, FileMode.Open); try { 类实例名 = (类名)formatter.Deserialize(fs); } catch (SerializationException e) { Console.WriteLine("Failed to deserialize. Reason: " + e.Message); throw; } finally { fs.Close(); }
相关文章推荐
- java对象序列化学习笔记
- RMI学习笔记(二)-----RMI远程调用实例(一)
- AJAX 学习笔记(3) Ajax标准交互实例
- java对象序列化学习笔记(zz)
- python文件读写实例学习笔记
- Web2.0之Ajax 学习笔记与应用实例(转载)
- RMI学习笔记(二)-----RMI远程调用实例(一)
- cougaar学习笔记之---序列化Asset到MySQL中
- OWC学习笔记-电子表格(Spreadsheet)第一个实例
- java对象序列化学习笔记(z)
- C#学习实例-将比较复杂的结构序列化到文件中
- .Net 序列化学习笔记
- DNS与BIND学习笔记 5 (实例操练)
- .net学习笔记datalist产品购买实例20060602
- Servlet学习笔记(二)-----计数器实例
- Spring学习笔记:第二章 Spring中IoC的入门实例
- java对象序列化学习笔记
- CGI实例导引之学习笔记
- Mcad学习笔记之序列化(2进制和Soap序列化)
- java对象序列化学习笔记