C# XML的序列化与反序列化
主要2种方式1.BinaryFormatter 2.XmlSerializer
创建对象
[Serializable] //如果要想保存某个class中的字段,必须在class前面加个这样attribute(C#里面用中括号括起来的标志符) public class Person {public int age;public string name;[NonSerialized] //如果某个字段不想被保存,则加个这样的标志public string secret;}
1.BinaryFormatter (性能好)
class Program {static void Main(string[] args){//序列化Person person = new Person();person.age = 18;person.name = "tom";person.secret = "i will not tell you";FileStream stream = new FileStream(@"c:\temp\person.dat", FileMode.Create);BinaryFormatter bFormat = newBinaryFormatter();bFormat.Serialize(stream, person);stream.Close();//反序列化Person person = new Person();FileStream stream = new FileStream(@"c:\temp\person.dat", FileMode.Open);BinaryFormatter bFormat = new BinaryFormatter();person = (Person)bFormat.Deserialize(stream);//反序列化得到的是一个object对象.必须做下类型转换 stream.Close();Console.WriteLine(person.age + person.name + person.secret);//结果为18tom.因为secret没有有被序列化. } }
2.XmlSerializer(常用)
//序列化 Person person = new Person(); person.age = 18; person.name = "tom"; person.secret = "i will not tell you"; FileStream stream = new FileStream(@"c:\temp\xmlFormat.xml", FileMode.Create);XmlSerializer xmlserilize = new XmlSerializer(typeof(Person)); xmlserilize.Serialize(stream, person); stream.Close();//反序列化 Person person = new Person(); FileStream stream =new FileStrea (@"c:\temp\xmlFormat.xml",FileMode.Open);XmlSerializerxmlserilize = new XmlSerializer(typeof(Person)); person = (Person)xmlserilize.Deserialize(stream); stream.Close();Console.WriteLine(person.age + person.name + person.secret);
总体思路:
序列化:
1.得到一个存储对象的类型
2.创建一个写入文件流
3.定义要序列化的类型
4.调用序列化方法
反序列化:
1.定义一个装载对象的类型
2.创建一个读出文件流
3.定义要反序列化的类型
4.调用反序列化方法
转载于:https://www.cnblogs.com/zhang1f/p/11093520.html
C# XML的序列化与反序列化相关推荐
- C#实现对象的Xml格式序列化及反序列化
要序列化的对象的类: [Serializable] public class Person { private string name; public string Name { get { retu ...
- jackson (json、xml的序列化与反序列化)
jackson用于java对象到json的序列化与反序列化.还支持xml格式. jackson用于实现json与java对象的序列与反序列化.web service要实现跨机器传送对象那么就需要有一种 ...
- XML的序列化和反序列化 详细介绍
为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...
- 通过XmlSerializer 实现XML的序列化与反序列化
通过XmlSerializer 我们可以十分简单的将Model与XML进行转换 官文在点这里 帮助类 1 using System; 2 using System.Text; 3 using Syst ...
- Java XML解析: 序列化 反序列化
Java解析XML的类库很多,本文记录用XStream库对XML的处理 背景 实际开发中,应用报文的格式一般都是JSON和XML:JSON大家都很熟悉(优秀类库:GSON/FastJson/Jacks ...
- 序列化和反序列化(转)
转载:http://kb.cnblogs.com/page/515982/ 摘要 序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出 ...
- C#中JSON序列化和反序列化
有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境-- 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...
- 序列化和反序列化--转
http://www.infoq.com/cn/articles/serialization-and-deserialization 简介 文章作者服务于美团推荐与个性化组,该组致力于为美团用户提供每 ...
- 谈谈:.Net中的序列化和反序列化
序列化和反序列化相信大家都经常听到,也都会用, 然而有些人可能不知道:.net为什么要有这个东西以及.net Frameword如何为我们实现这样的机制, 在这里我也是简单谈谈我对序列化和反序列化的一 ...
最新文章
- 模板引擎:VelocityFreeMarker(转)
- go/golang init()方法的调用
- arpanet(阿帕网)
- 三校生计算机对口本科有哪些学校,宝山三校生五月对口高考报名
- 2014年百度之星程序设计大赛 - 初赛(第二轮)JZP Set
- 谈表达式树的缓存(6):五种缓存方式的性能比较
- 蓝桥杯 ADV-108算法提高 分数统计
- JAVA 注解示例 详解
- 读书笔记图灵传,算法
- ps中怎么导出tif_TIF图片太大难以上传?
- 抖音实战~搜索页面~扫描二维码
- java贪吃蛇保存,Java 实现贪吃蛇游戏的示例
- 2015年4月9号和4月11号
- 手机项目人力投入评估
- 学习UI设计,哪些软件是必学的
- 【UE4】通过动画序列自动生成蒙太奇(In Code)
- css溢出文本省略号
- 【计算机无法开机】电脑无法开启,显示REGISTRY_ERROR
- 【R语言】年龄性别频数匹配 挑选样本 病例对照研究,对年龄性别进行频数匹配
- python爬虫百度安全验证_爬虫黑科技-绕开百度人机验证