public static string XmlUtils(object obj, bool omitXmlDeclaration = true, bool indent = false,
bool useNameSpace = false)
{
var sb = new StringBuilder();
using (var xw = XmlWriter.Create(sb, new XmlWriterSettings()
{
OmitXmlDeclaration = omitXmlDeclaration, //是否省略xml声明
ConformanceLevel = ConformanceLevel.Auto,
Indent = indent //生成的xml是否缩进
}))
{
if (useNameSpace)
{
var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj);
}
else
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty); //去除xml命名空间 var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj, namespaces);
}
} //...:nil=\"true\"表示该值为空
return sb.ToString();
}

也可以做成扩展方法

        public static string XmlUtils(this T obj, bool omitXmlDeclaration = true, bool indent = false,
bool useNameSpace = false)
{
var sb = new StringBuilder();
using (var xw = XmlWriter.Create(sb, new XmlWriterSettings()
{
OmitXmlDeclaration = omitXmlDeclaration, //是否省略xml声明
ConformanceLevel = ConformanceLevel.Auto,
Indent = indent //生成的xml是否缩进
}))
{
if (useNameSpace)
{
var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj);
}
else
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty); //去除xml命名空间 var xs = new XmlSerializer(obj.GetType());
xs.Serialize(xw, obj, namespaces);
}
} //...:nil=\"true\"表示该值为空
return sb.ToString();
}

c# 序列化对象为xml 方法的更多相关文章

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

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

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

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

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

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

  4. 获取任意可序列化对象的Xml字符串,方便在日志中查看任一所感兴趣的对象。

    代码: public static string GetLoggingString(this object obj) { using (var stream = new MemoryStream()) ...

  5. C# 调用Webservice并传递序列化对象

    原文:C# 调用Webservice并传递序列化对象 C#动态调用WebService注意要点 1.动态调用的url后面注意一定要加上?WSDL   例如:string _url = "ht ...

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

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

  7. 在.net中序列化读写xml方法的总结

    在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命 ...

  8. C#_在.net中序列化读写xml方法的总结

    阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...

  9. (转)在.net中序列化读写xml方法的总结

    阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...

随机推荐

  1. [Poj1273]Drainage Ditches(网络流)

    Description 给图,求最大流 最大流模板题,这里用dinic Code #include <cstdio> #include <cstring> #include & ...

  2. poj 23565-Find a multiple

    Find a multiple The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each ...

  3. Scrapy框架的命令行详解【转】

    Scrapy框架的命令行详解 请给作者点赞 --> 原文链接 这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: loca ...

  4. Linux命令之---cd

    命令简介 Linux cd 命令是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 命令格式 cd [目录名] 命令功能 切换当前目录至dirName 常用范例 ...

  5. Codeforces 664D Graph Coloring 二分图染色

    题意: 一个无向图的每条边为红色或蓝色,有这样一种操作:每次选一个点,使与其相邻的所有边的颜色翻转. 求解是否可以经过一系列操作使所有的边颜色相同,并输出最少操作次数和相应的点. 分析: 每个点要么选 ...

  6. 开源中国app说什么 旁边的那个图标是什么drawable

    妈的,那就只是一个 ActionBarDrawerToggle: 配合侧滑菜单而生的而已.

  7. tomcat内存泄漏存入dump文件

    很多tomcat进程退出(或者进程假死),都是由于频繁的抛出OutOfMemeoryError导致的. 为了让tomcat退出前或者发生OutOfMemeoryError时自动dump堆栈信息,方便事 ...

  8. IOS开发学习笔记024-UIButton和UIImageView的区别

    一.UIButton和UIImageView的区别 1. UIImageView 默认只能显示一张图片(默认会填充整个ImageView) 设置方法:image/setImage: UIButton ...

  9. 《HTTP协议详解》读书笔记---请求篇之情求方法

    之前对于网络这一块不是很清楚,值知道TCP/IP协议,三次握手四次握手之类的很笼统,零碎的知识,现在打算系统学习下网络相关的知识,先从http协议开始. 本人,还是新手,对于一些知识如果有理解错误的, ...

  10. sql2008查看备份进度

    SELECT session_id, request_id, start_time, status, command, sql_handle --,statement_start_offset, st ...