Welcome

首页 / 软件开发 / C# / C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument

C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument2013-11-13一、前言

上篇随笔主要是针对于Xml的特性Attribute与实体之间的匹配与转换。该篇随笔主要内容为将对象转换成相应的Xml以及XElement。这2篇随笔以不同的方式对Xml进行转换与匹配,每种匹配都采用不同的角度进行操作。本文主要为对象实体的转换,下篇侧重于Xml的匹配。

二、Xml转换

2.1 实体集合转换Xml

实体集合转换Xml的方法为:public static string ToXml<T>(IList<T> entities, string rootName = "") where T : new(),通过传入的实体集合对象和Xml根名称,可以转换成相应的Xml,代码如下:

public static string ToXml<T>(IList<T> entities, string rootName = "") where T : new(){if (entities == null || entities.Count == 0){return string.Empty;}StringBuilder builder = new StringBuilder();builder.AppendLine(XmlResource.XmlHeader);XElement element = ToXElement<T>(entities, rootName);builder.Append(element.ToString());return builder.ToString();}
针对于实体集合的转换,转换后的结果如下:

<?xml version="1.0" encoding="utf-8" ?><MapperInfoSet><MapperInfo><Name>MapperInfoIndex0</Name><CreatedTime>2012-02-19T08:54:44.9411601+08:00</CreatedTime><IsActive>true</IsActive><Value>0</Value><Percent>50</Percent><TargetUrl>www.codeplex.com?Id=0</TargetUrl></MapperInfo><MapperInfo><Name>MapperInfoIndex1</Name><CreatedTime>2012-02-19T08:54:44.9421602+08:00</CreatedTime><IsActive>false</IsActive><Value>1</Value><Percent>50</Percent><TargetUrl>www.codeplex.com?Id=1</TargetUrl></MapperInfo></MapperInfoSet>
2.2 实体转换Xml

实体转换Xml的方法为:public static string ToXml<T>(T entity) where T : new(),通过传入的实体,可以转换成相应的Xml,代码如下:

public static string ToXml<T>(T entity) where T : new(){if (entity == null){return string.Empty;}XElement element = ToXElement<T>(entity);return element.ToString();}
针对于单个实体的转换,转换后的结果如下:

<MapperInfo><Name>MapperInfoIndex0</Name><CreatedTime>2012-02-19T08:59:17.1387289+08:00</CreatedTime><IsActive>true</IsActive><Value>0</Value><Percent>50</Percent><TargetUrl>www.codeplex.com?Id=0</TargetUrl></MapperInfo>