using System.IO;
using System.Xml.Serialization;
namespace Hncore.Infrastructure.Serializer
{
public class XML
{
#region 将C#数据实体转化为xml数据
///
/// 将C#数据实体转化为xml数据
///
/// 要转化的数据实体
/// xml格式字符串
public static string XmlSerialize(T obj)
{
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer xml = new XmlSerializer(typeof(T));
//序列化对象
xml.Serialize(stream, obj);
stream.Position = 0;
using (StreamReader sr = new StreamReader(stream))
{
string str = sr.ReadToEnd();
return str;
}
}
}
#endregion
#region 将xml数据转化为C#数据实体
///
/// 将xml数据转化为C#数据实体
///
/// 符合xml格式的字符串
/// T类型的对象
public static T XmlDeserialize(string xml)
{
XmlSerializer xmldes = new XmlSerializer(typeof(T));
using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(xml.ToCharArray())))
{
return (T)xmldes.Deserialize(stream);
}
}
#endregion
}
}