在System.Xml.Serialization命名空间中提供了XML序列化类XmlSerializer用于将对象序列化为XML。

下面看一个最简单的例子:

    public class A
{
public int a
{
get;
set;
}
} public string XmlSerialize<T>(T obj)
{
XmlSerializer xs = new XmlSerializer(typeof(T)); using (TextWriter tw = new StringWriter())
{
xs.Serialize(tw, obj);
return tw.ToString();
}
} public T XmlDeserialize<T>(string xml) where T : class
{
XmlSerializer xs = new XmlSerializer(typeof(T));
using (TextReader tr = new StringReader(xml))
{
return xs.Deserialize(tr) as T;
}
} A objA = new A
{
a =
}; string xml = XmlSerialize(objA); var obj = XmlDeserialize<A>(xml);

上面代码序列化出来的xml如下:

<?xml version="1.0" encoding="utf-16"?>
<A xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<a>1</a>
</A>

C# 使用XML序列化对象(一)的更多相关文章

  1. C# 使用XML序列化对象(二)

    在C# 使用XML序列化对象(一)中描述了使用XML序列化对象的最简单的实现. 现在我们来看看稍微复杂一点的情况: 现有两个类:A和B,B是A的派生类,如下所示: public class A { p ...

  2. c#xml序列化对象,xml标记都缩写了

    最近最后一个接口,他们的格式很严格必须是如下格式 <message> <age>20</age> <name>张三</name> </ ...

  3. XmlSerializer 对象的Xml序列化和反序列化

    http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html 这篇随笔对应的.Net命名空间是System.Xm ...

  4. XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

    这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间.   为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中 ...

  5. C#操作Xml:XmlSerializer 对象的Xml序列化和反序列化

    这篇随笔对应的.Net命名空间是System.Xml.Serialization:文中的示例代码需要引用这个命名空间. 为什么要做序列化和反序列化? .Net程序执行时,对象都驻留在内存中:内存中的对 ...

  6. Windows phone 之XML序列化与反序列化

    为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...

  7. IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除

    1 文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件3 三种序列化器4 xml和json1.文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/ ...

  8. 序列化对象为xml字符串

    /// <summary>    /// 序列化对象为xml字符串    /// </summary>    /// <param name="obj" ...

  9. Android中序列化对象到XMl 和 XML反序列化为对象

    package com.example.xmloperation; import java.io.File; import java.io.FileOutputStream; import java. ...

随机推荐

  1. [转]Ionic 实现双击返回键退出功能

    本文转自:http://ionichina.com/topic/5514b539b6421f9166aa5f88 一.准备 Toast插件 插件地址:cordova plugin add https: ...

  2. 迭代加深搜索 codevs 2541 幂运算

    codevs 2541 幂运算  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 从m开始,我们只需要6次运算就可以计算出 ...

  3. c++仿函数 functor

    内容整理自国外C++教材 先考虑一个简单的例子:假设有一个vector<string>,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样 ...

  4. python实现虚拟茶话会

    这个项目目的是编写一个聊天服务器,该聊天服务器的功能有: 服务器能同时接收来自不同用户的连接 允许用户同时操作 能够解释命令,例如,say或者logout命令 服务器容易扩展 这个项目里面我们会使用到 ...

  5. 绕过D盾安全狗连接菜刀

    0x00 各种奇葩符号 现在基本上没啥用了,毕竟几年前的小玩意儿 /;.xxx.asp;.jpg /;.asp/.jpg 像这种各位看官可以忽略了,毕竟某狗和某盾也不是吃干饭的,写出来只是为了纪念一下 ...

  6. VS2013无法启动 IIS Express Web解决办法

    不要勾选[覆盖应用程序根URL(U)],或让[覆盖应用程序根URL(U)]下面的输入框和上面的输入框的地址一样! 使用VS2013有一段时间了,因前期都是编写C/S程序,没有使用到B/S调试器.前几日 ...

  7. javascript边角知识

    1.组织默认事件 阻止默认事件,h5默认的input type='date'在某些浏览器和android设备上没有效果,这时要调用h5+的时间选择器,但是要组织input默认的click事件,代码如下 ...

  8. java遍历hashTable

    //获取key值 Enumeration k = lovResults.keys();while(k.hasMoreElements()){ System.out.println(k.nextElem ...

  9. Linux经常用到的命令

    1. Linux下用vim打开配置文件乱码,在终端输入:“LANG=”即可. 2. 查看端口是否被占用: 3. netstat -anp | grep port netstat -ltn 4. lso ...

  10. Easyui Combotree问题及其相关

    Easyui的setValue方法无效 今天在开发项目的时候,遇到第一个很奇怪的问题:EasyUI的setValue方法无效. $('#department_parent').combotree('s ...