现有Person类:

    [Serializable]
public class Person
{
public string Name;
public string Info; public Person(string name)
{
Name = name;
} [OnSerializing]
public void BeforeSerialize(StreamingContext context)
{
Info = "Welcome, " + Name;
}
}

直接用DataContractSerializer 序列化到文件后, 结果如:

<?xml version="1.0" encoding="utf-16"?><ArrayOfPerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyNamespace"><Person><Info>Welcome, Jeff</Info><Name>Jeff</Name></Person><Person><Info>Welcome, Frank</Info><Name>Frank</Name></Person></ArrayOfPerson>

要让序列化后的XML更可读, 可以借助于XDocument , 测试代码:

        public void TestSerialize()
{
var persons = new List<Person>()
{
new Person("Jeff"),
new Person("Frank")
};
string file = "out.xml";
var dcs = new DataContractSerializer(typeof(List<Person>)); // Serialize
var sb = new StringBuilder();
var xw = XmlWriter.Create(sb);
dcs.WriteObject(xw, persons);
xw.Close(); var sw = new StreamWriter(file, false, Encoding.Unicode);
var doc = XDocument.Parse(sb.ToString());
//sw.Write(sb.ToString());
sw.Write(doc.ToString());
sw.Close(); // Deserialize
var xr = XmlReader.Create(file);
var ps = (List<Person>)dcs.ReadObject(xr);
Console.WriteLine(ps[].Info);
}

结果:

<ArrayOfPerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyNamespace">
<Person>
<Info>Welcome, Jeff</Info>
<Name>Jeff</Name>
</Person>
<Person>
<Info>Welcome, Frank</Info>
<Name>Frank</Name>
</Person>
</ArrayOfPerson>

.NET 序列化成XML, 并且格式化的更多相关文章

  1. C#对象序列化成XML,以及自定义标签名

    C#对象序列化操作: public class XMLHelper { /// <summary> /// 对象序列化成 XML String /// </summary> p ...

  2. 将对象序列化成XML字符串

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  3. XmlSerializer 对象序列化成XML 自定义编码格式(gb2312)

    随着面向服务(SOA)的开发方式的兴起,客户端和服务端之间的消息传送,很多采用了XML的格式.但是大家在日常的开发中,应该会有这么种体验,就是组织xml格式的代码太繁琐,这篇随笔也是为了和大家分享下简 ...

  4. C#实体对象序列化成Json,格式化,并让字段的首字母小写

    解决办法有两种:第一种:使用对象的字段属性设置JsonProperty来实现(不推荐,因为需要手动的修改每个字段的属性) public class UserInfo { [JsonProperty(& ...

  5. jackson2.8.4java对象序列化成json字符串格式化时间

    public class User {private int id; private Date birthday; private double money; private String name; ...

  6. webapi 实体作为参数,自动序列化成xml的问题

    原文:http://bbs.csdn.net/topics/392038917 关注 Ray_Yang Ray_Yang 本版等级:   #6 得分:0回复于: 2016-10-27 21:30:51 ...

  7. XML序列化成对象

    这个是和ALM上传测试结果结合使用的//把xml序列化成对象以及把对象序列化成xml using System; using System.Data; using System.Configurati ...

  8. 将Java对象序列化成JSON和XML格式

    1.先定义一个Java对象Person: public class Person { String name; int age; int number; public String getName() ...

  9. C#中类的字段或属性不被序列化成JSON或XML

    将一个类序列化成JSON或XML时,如果某个字段或属性不想被序列化,则可以使用以下Attribute: 1.[Newtonsoft.Json.JsonIgnore]特性:使用Newtonsoft.Js ...

随机推荐

  1. PHP 正则表达式资料

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 举例来说,正则表达式的一个 ...

  2. 常见HTTP状态码及URL编码表

    常见HTTP状态码 1xx: 信息          (用于表示临时响应并需要请求者执行操作才能继续的状态代码) 消息: 描述: 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有 ...

  3. RabbitMQ Exchange详解以及Spring中Topic实战

    前言 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦. 业务需求 ...

  4. C语言指针基本操作

    C语言指针基本操作 指针  指针介绍 如果说C语言最有魅力的地方在哪,那么毋庸置疑,非指针莫属了. 众所周知,C语言中每个变量都有一个内存地址,可以通过&进行访问.指针是一个变量,它的值是一个 ...

  5. netty源码解解析(4.0)-1 核心架构

    netty是java开源社区的一个优秀的网络框架.使用netty,我们可以迅速地开发出稳定,高性能,安全的,扩展性良好的服务器应用程序.netty封装简化了在服务器开发领域的一些有挑战性的问题:jdk ...

  6. Mybatis之分页插件pagehelper的简单使用

    最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...

  7. ajax与文件上传

    一.ajax ajax(Asynchronous JavaScript And XML):异步JavaScript和XML,即使用JavaScript语句与服务器进行异步交互,传输的数据为XML(也可 ...

  8. IdentityServer4 中文文档 -2- (简介)相关术语

    IdentityServer4 中文文档 -2- (简介)相关术语 原文:http://docs.identityserver.io/en/release/intro/terminology.html ...

  9. [转]angular2封装material2对话框组件

    本文转自:https://www.jianshu.com/p/da9978e25566 1. 说明 angular-material2自身文档不详,控件不齐,使用上造成了很大的障碍.这里提供一个方案用 ...

  10. [翻译]EntityFramework Core 2.2 发布

    原文来源 TechViews 今天我们将推出EF Core 2.2的最终版本,以及ASP.NET Core 2.2和.NET Core 2.2 .这是我们的开源和跨平台对象数据库映射技术的最新版本. ...