c# 复杂Xml序列化和反序列化相关特性使用
1、序列化及反序列化方法
/// <summary>
/// 对象转xml
/// </summary>
/// <param name="obj"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static string ToXml(this object obj, string encoding = "UTF-8")
{
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings
{
Encoding = Encoding.GetEncoding(encoding)
};
using (var s = new MemoryStream())
{
using (var xmlWriter = XmlWriter.Create(s, xmlWriterSettings))
{
var xns = new XmlSerializerNamespaces();
xns.Add("", "");
new XmlSerializer(obj.GetType()).Serialize(xmlWriter, obj, xns);
s.Position = 0;
}
using (var sr = new StreamReader(s))`
{
return sr.ReadToEnd();
}
}
}
/// <summary>
/// Xml转对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static T X2Entity<T>(this string obj) where T : class
{
try
{
using (StringReader sr = new StringReader(obj))
{