C#中实体集合和实体转换成相应的string、XDocument、XElement

public class SimpleXmlConverter
{
public static string ToXml<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return string.Empty;
} StringBuilder builder = new StringBuilder();
builder.AppendLine(XmlResource.XmlHeader); XElement element = ToXElement<T>(entities, rootName);
builder.Append(element.ToString()); return builder.ToString();
} public static XmlDocument ToXmlDocument<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return null;
} XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(ToXml<T>(entities, rootName)); return xmlDocument;
} public static XDocument ToXDocument<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return null;
} return XDocument.Parse(ToXml<T>(entities, rootName));
} public static XElement ToXElement<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return null;
} if (string.IsNullOrWhiteSpace(rootName))
{
rootName = typeof(T).Name + XmlResource.XmlRootNameSuffix;
} XElement element = new XElement(rootName); foreach (T entity in entities)
{
element.Add(ToXElement<T>(entity));
} return element;
} public static string ToXml<T>(T entity) where T : new()
{
if (entity == null)
{
return string.Empty;
} XElement element = ToXElement<T>(entity); return element.ToString();
} public static XElement ToXElement<T>(T entity) where T : new()
{
if (entity == null)
{
return null;
} XElement element = new XElement(typeof(T).Name);
PropertyInfo[] properties = typeof(T).GetProperties();
XElement innerElement = null;
object propertyValue = null; foreach (PropertyInfo property in properties)
{
propertyValue = property.GetValue(entity, null);
innerElement = new XElement(property.Name, propertyValue);
element.Add(innerElement);
} return element;
} public static XElement ToXElement(Type type)
{
if (type == null)
{
return null;
} XElement element = new XElement(type.Name);
PropertyInfo[] properties = type.GetProperties();
XElement innerElement = null; foreach (PropertyInfo property in properties)
{
innerElement = new XElement(property.Name, null);
element.Add(innerElement);
} return element;
}
}

C#中实体集合和实体转换成相应的string、XDocument、XElement的更多相关文章

  1. C# 实体集合和实体转换成相应的string、XDocument、XElement、XDocument

    https://msdn.microsoft.com/zh-cn/library/system.xml.linq.xelement(v=vs.110).aspx XElement.Parse 方法 ( ...

  2. 将泛类型集合List类转换成DataTable

    /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...

  3. ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)

    原文:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100) 对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是 ...

  4. C#将image中的显示的图片转换成二进制

    原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才 ...

  5. 字符串A转换到字符串B,只能一次一次转换,每次转换只能把字符串A中的一个字符全部转换成另一个字符,是否能够转换成功

    public class DemoTest { public static void main(String[] args) { System.)); } /** * 有一个字符串A 有一个字符串B ...

  6. Java中Office(word/ppt/excel)转换成HTML实现

    运行条件:JDK + jacob.jar + jacob.dll 1) 把jacob.dll在 JAVA_HOME\bin\ 和 JAVA_HOME\jre\bin\ 以及C:\WINDOWS\sys ...

  7. [转]C#将image中的显示的图片转换成二进制

    本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html .将Image图像文件存入到数据库中 我们知道数据库里的Im ...

  8. 转:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)

    对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是以经纬度为单位的都是地理坐标系,因为它归根结底是一个椭球体,只不过各个国家为了反映该国家所在区域地球的真实形状,而 ...

  9. python3.6 + selenium2.53.1 查询数据库并将返回的内容中每一行的内容转换成class对象

    环境: win10 python3.6 selenium2.53.1 准备工作:先安装pymysql python2.x链接数据库使用MySQLdb,而python3.x链接数据库使用pymysql ...

随机推荐

  1. 动态绑数据(Repeater控件HeaderTemplate和ItemTemplate)

    前几天,Insus.NET有写了<动态绑数据(GridView控件Header和ItemTemplate)>http://www.cnblogs.com/insus/p/3303192.h ...

  2. 为什么使用docker

    为什么要使用Docker? 作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势. 更高效的利用系统资源 由于容器不需要进行硬件虚拟及运行完整操作系统等额外开销,Docker对系 ...

  3. Oracle修改监听IP地址

    oracle 11g断网安装时,没有检测net的功能,所以安装完后,netstat -an 发现自动监听的是127.0.0.1:1521,这样安装完成后,其他的主机根本无法连接,是什么原因呢? 排错后 ...

  4. webpack热更新实现

    原文地址:webpack热更新实现 webpack,一代版本一代神,代代版本出大神.如果你的webpack和webpack-dev-server版本大于2小于等于3.6,请继续看下去.其它版本就必浪费 ...

  5. Cardinality (基数)

    名词 Cardinality:    优化器在计算成本的时候,需要从统计信息中取得数据,然后去估计每一步操作所涉及的行数,叫做Cardinality.    比如,一张表T有1000行数据,列COL1 ...

  6. plsql查询结果中文乱码

    网上的教程很多,但是这里需要说明的是如果没有安装oracle客户端的情况下,该怎么修改注册表里面的oracle参数呢? 当然有些是不需要改注册表的,只需要配置环境变量就可以了,但是有的时候发现改了之后 ...

  7. 开窗函数Over用法

    比如我们有这个表: 销售记录表 日期 姓名 产品 销售额 201601 A 电脑 12560 201601 A 手机 6501 201601 A 平板 8510 201602 A 手机 1560 20 ...

  8. Redis及虚拟机windows两种环境安装配置

    ---恢复内容开始--- Redis  /rae  dis/是一个开源的Key-Value数据库.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链 ...

  9. LCA 【bzoj 4281】 [ONTAK2015]Związek Harcerstwa Bajtockiego

    [bzoj 4281] [ONTAK2015]Związek Harcerstwa Bajtockiego Description 给定一棵有n个点的无根树,相邻的点之间的距离为1,一开始你位于m点. ...

  10. luogu2155 [SDOI2008]沙拉公主的困惑

    link 求出1到N的阶乘中与M的阶乘互质的数的个数,对R取模,多组询问,R<=10^9+10,T<=10000,1 < = N , M < = 10000000 1到\(M! ...