当前位置: 首页 > news >正文

XmlSerializer

XmlSerializer作用是将对象序列化到 XML 文档中和从 XML 文档中反序列化对象。XmlSerializer 使您得以控制如何将对象编码到 XML 中。

所在的命名空间:System.Xml.Serialization
程序集:System.Xml(在 system.xml.dll 中)

先看一个简单的例子,只序列化一个字符串

   static void Main(string[] args)
        {
            string str="Hello World";
            XmlSerializer xml=new XmlSerializer(typeof(string));
            xml.Serialize(Console.Out,str);
        }

XmlSerializer有很多构造函数,这里我们只用了最简单的一种,本例中的构造函数的参数类型是type,输出时采用的流是控制台输出流

结果:

看输出结果我们可以看出这是一个Xml文档

本文不对Xml进行详细的解释,推荐链接http://baike.baidu.com/link?url=oXEXW9JR89XmCl5akWbaWN6fqdVjbsQRslyABz0M_osCDCrukCyqHKX2c6D7YifKQUp_0Ht0_nM4lv4Y-qZFJIXpVVJqyH-nvgW8V52QpHtU2AE-4bf_iDKHYEE7rm0o

 下面我们来序列化一个对象

[XmlRoot]
    public class Animals
    {
        [XmlElement]
        public string Name { get; set; }
        [XmlElement]
        public int Age { get; set; }
    }


static void Main(string[] args)
        {
            Animals ani=new Animals();
            ani.Name = "dog";
            ani.Age = 12;
            XmlSerializer xml=new XmlSerializer(typeof(Animals));
            xml.Serialize(new FileStream(@"D:\1.txt",FileMode.Create,FileAccess.ReadWrite), ani);
        }

执行之后的结果:

<?xml version="1.0"?>
<Animals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>dog</Name>
<Age>12</Age>
</Animals>

下面是反序列化对象

 Animals ani=new Animals();
            ani.Name = "dog";
            ani.Age = 12;
            FileStream stream = new FileStream(@"D:\1.txt", FileMode.Create, FileAccess.ReadWrite);
            XmlSerializer xml=new XmlSerializer(typeof(Animals));
            xml.Serialize(stream, ani);
            stream.Close();
            Animals ani2=(Animals)xml.Deserialize(new FileStream(@"D:\1.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite));
            Console.WriteLine(ani2.Age+ani2.Name);

 

转载于:https://www.cnblogs.com/jixinyu/p/4298709.html

相关文章:

  • 网站推广--Html关键词代码解说
  • 根域名数据库地址
  • intent 几种用法
  • JS-DOM操作应用高级(二)
  • 新建ios项目,运行时一闪即逝,并未显示出画的界面,以及分辨率自适应问题...
  • JavaScript Date学习实例:获取3分钟前的时间“hhmmss”格式
  • Java:多线程三死锁、线程间通讯
  • actor binary tree lab4
  • LinkIssue: Error 'LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or cor
  • android-NGN-stack中文文档
  • 【转】Android开发之旅:环境搭建及HelloWorld
  • 09-超级猜图
  • 开平区的数据迁移工作
  • 多线程应用中的两种锁
  • 动态链接库(DLL)
  • Android 控件背景颜色处理
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java程序员幽默爆笑锦集
  • Less 日常用法
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • php ci框架整合银盛支付
  • 编写符合Python风格的对象
  • 记一次用 NodeJs 实现模拟登录的思路
  • 实现简单的正则表达式引擎
  • 找一份好的前端工作,起点很重要
  • 进程与线程(三)——进程/线程间通信
  • #图像处理
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (4) PIVOT 和 UPIVOT 的使用
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Note)C++中的继承方式
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (接口封装)
  • (南京观海微电子)——COF介绍
  • (区间dp) (经典例题) 石子合并
  • (三)elasticsearch 源码之启动流程分析
  • (算法)Travel Information Center
  • (五)Python 垃圾回收机制
  • (转)http协议
  • (转)大型网站架构演变和知识体系
  • (转)人的集合论——移山之道
  • . NET自动找可写目录
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET上SQLite的连接
  • /boot 内存空间不够
  • /etc/sudoer文件配置简析
  • ::什么意思
  • @EnableWebMvc介绍和使用详细demo