집 >백엔드 개발 >C#.Net 튜토리얼 >C# xml 직렬화 클래스의 코드 예제에 대한 자세한 설명
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)!