c# xml序列化类的代码实例详解
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using Imps.Services.CommonV4;
namespace Imps.Services.IDCService.Utility
{
public class XMLSerializerEx
{
private static ITracing _tracing = TracingManager.GetTracing("XMLSerializerEx");
/// <summary>
/// 对象转换成XML
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string SaveXmlFromObj<T>(T obj)
{
if (obj == null) return null;
XmlSerializer serializer = new XmlSerializer(typeof(T));
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
MemoryStream stream = new MemoryStream();
XmlTextWriter xtw = new XmlTextWriter(stream, Encoding.UTF8);
xtw.Formatting = Formatting.Indented;
try
{
serializer.Serialize(stream, obj,namespaces);
}
catch { return null; }
stream.Position = 0;
string returnStr = string.Empty;
using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
{
string line = "";
while ((line = sr.ReadLine()) != null)
{
returnStr += line;
}
}
return returnStr;
}
public static T LoadObjFromXML<T>(Stream s)
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
try
{
return ((T)serializer.Deserialize(s));
}
catch { return default(T); }
}
/// <summary>
/// XML反序列化到对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="data"></param>
/// <returns></returns>
public static T LoadObjFromXML<T>(string data)
{
using (MemoryStream stream = new MemoryStream())
{
using (StreamWriter sw = new StreamWriter(stream, Encoding.UTF8))
{
sw.Write(data);
sw.Flush();
stream.Seek(0, SeekOrigin.Begin);
return LoadObjFromXML<T>(stream);
}
}
}
}
} 以上就是c# xml序列化类的代码实例详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号