.Net下的XML序列化(一)
Address类:
public class Address
{
public Address(){}
public string Street
{
get { return street; }
set { street = value; }
}private string street;
public string City
{
get { return city; }
set { city = value; }
}private string city;
public string State
{
get { return state; }
set { state = value; }
}private string state;
}
Customer类:
public class Customer
{
public Customer(){}
public string Name
{
get { return name; }
set { name = value; }
}private string name;
public Address Address
{
get { return address; }
set { address = value; }
}private Address address;
}
必须在将要序列化的类上加入特性[Serializable]
生成测试数据:
{
Customer customer = new Customer();
Address address = new Address();
address.City = "北京";
address.State = "丰台";
address.Street = "马家堡西里";
customer.Address = address;
customer.Name = "BillChen";
return customer;
}
进行序列化操作。
static void Main(string[] args)
{
Customer customer = Customers.GetGustomer();
SerializerCustomer1(customer);
SerializerCustomer2(customer);
SerializerCustomer3(customer);
Console.ReadLine();
}
private static void SerializerCustomer1(Customer customer)
{
XmlSerializer ser = new XmlSerializer(typeof(Customer));
FileStream stream = new FileStream("test.xml", FileMode.OpenOrCreate);
ser.Serialize( stream, customer );
stream.Close();
}
private static void SerializerCustomer2(Customer customer)
{
XmlSerializer ser = new XmlSerializer(typeof(Customer));
MemoryStream stream = new MemoryStream(100);
ser.Serialize( stream, customer );
stream.Position = 0;
using(StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
Console.Write(reader.ReadToEnd());
}
}
private static void SerializerCustomer3(Customer customer)
{
XmlSerializer ser = new XmlSerializer(typeof(Customer));
MemoryStream stream = new MemoryStream(100);
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;//缩进
ser.Serialize( writer, customer );
stream.Position = 0;
using(StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
string line;
while((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
writer.Close();
}
以上是序列化指定的类,及读取序列化后的XML内容的几种方式。
转载于:https://www.cnblogs.com/BillChen/archive/2005/08/27/223992.html
.Net下的XML序列化(一)相关推荐
- 【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )
文章目录 一.标签闭包下创建子标签 二.使用 MarkupBuilderHelper 添加 xml 注释 三.完整代码示例 一.标签闭包下创建子标签 在上一篇博客 [Groovy]xml 序列化 ( ...
- XML序列化以及新增节点XMLHelper
介绍利用XMLHelper类实现XML的新建以及反序列化类的操作,XMLHelper见最底部 1.XML新增 document = XmlHelper.CreateXmlDocument(" ...
- 【转】解析.Net框架下的XML编程技术
[引自突破思维的禁忌的博客]一.前言 XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了.本文将指导大家如何运用C# ...
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...
- net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比
测试结果: ProtoBuf Length:115 BinaryFormatter Length:1177 XmlSerializer Length:814 xml length:825 做了一个各种 ...
- 关于XML序列化与CultureInfo
不同的计算机系统可能有着不同的CultureInfo,例如在中文环境下日期通常这样显示03/30/2016,而在有的操作系统下它可能是这样的30.3.2016. 这样的话带来一个问题,例如在中文环境下 ...
- 利用.NET的XML序列化解决系统配置问题
作者:未知 请作者速与本人联系 出自: http://blog.csdn.net/ycl111/ 在Web系统开发中,我们经常需要读取和设置一些系统配置项,常见的例如数据库连接字符串.上传路径等等 ...
- c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)
我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...
- Java对象XML序列化框架-Simple2.0
Java对象XML序列化框架-Simple2.0 Simple是一个XML序列化框架,一个Java 版本宽容的序列化框架,能够快速在Java 平台上开发XML.支持通过annotations完全配置化 ...
最新文章
- vue.js仿饿了么app---webpack配置项
- Windows2012R2 Hyper-v3.0 高可用群集安装及配置(Live Migration)
- 关于S/4HANA里Sales Office 和Sales Organization那些事儿
- 在iis中让asp.net的错误显示在远程访问电脑中
- 0226互联网新闻 | “多闪”上线首月iOS下载量超过500万;阿里云MWC 2019发布7款新产品...
- mysql如何在一个表中插入数据的同时,更新另一个表的数据?
- 代码还原,IDA中使用的宏
- mysql怎么更改gbk_把mysql 中的字符gb2312 改为gbk的方法
- React的调和过程(Reconciliation)
- Javafx中切换输入法
- elasticsearch清除过期数据
- Shopee使用虚拟信用卡绑卡测试购物教程
- Stealth-Persist混合内存系统中持久应用程序的体系结构支持
- 谈谈医疗行业数据治理的四个关键阶段【后附医院数据治理案例】
- NFT,不止于投机!
- C语言十个数中求出平均值
- ubuntu16.04 安装 nvidia GT730驱动
- 20年研发管理经验谈(十一)
- WebRTC音视频数据采集 六、第一节 WebRTC音视频数据采集
- Django+小程序打造个人助手-----2小程序项目工程目录
热门文章
- 路飞学城—Python爬虫实战密训班 第三章
- hadoop-0.20.1+120 hive-0.3.99.1+0 试用hwi(hive web interface
- 每个Java程序员必须知道的5个JVM命令行标志
- CentOS添加永久静态路由
- JavaScript设计模式: 接口模仿
- Android 学习笔记【基础扫盲篇】
- docker修改command_docker common command
- CGAffineTransform 放射变换
- 数据库的一些基础研究和性能探讨(触发器)
- cts测试之FileAccessPermissionTest