博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实体类和xml之间的序列化
阅读量:5008 次
发布时间:2019-06-12

本文共 3452 字,大约阅读时间需要 11 分钟。

///     /// Xml序列化与反序列化    ///     public class XmlUtil    {        public static string GetRoot(string xml)        {            if (xml == null)                xml = "";//预防下边的 Replace()、Trim()报错            XmlDocument doc = new XmlDocument();            doc.LoadXml(xml.Replace("\r\n", "").Replace("\0", "").Trim());            var e = doc.DocumentElement;            return e.InnerText;        }        #region 反序列化        ///         /// 反序列化        ///         /// XML字符串        /// 
public static T Deserialize
(string xml) { return (T)Deserialize(typeof(T), xml); } ///
/// 反序列化 /// ///
字节流 ///
public static T Deserialize
(Stream stream) { return (T)Deserialize(typeof(T), stream); } ///
/// 反序列化 /// ///
类型 ///
XML字符串 ///
public static object Deserialize(Type type, string xml) { if (xml == null) xml = "";//预防下边的 Replace()、Trim()报错 try { xml = xml.Replace("\r\n", "").Replace("\0", "").Trim(); using (StringReader sr = new StringReader(xml)) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(sr); } } catch (Exception e) { return null; } } ///
/// 反序列化 /// ///
///
///
public static object Deserialize(Type type, Stream stream) { XmlSerializer xmldes = new XmlSerializer(type); return xmldes.Deserialize(stream); } #endregion #region 序列化 ///
/// 序列化 /// ///
对象 ///
public static string Serializer
(T obj) { return Serializer(typeof(T), obj); } ///
/// 序列化 /// ///
类型 ///
对象 ///
public static string Serializer(Type type, object obj) { MemoryStream Stream = new MemoryStream(); XmlSerializerNamespaces _name = new XmlSerializerNamespaces(); _name.Add("", "");//这样就 去掉 attribute 里面的 xmlns:xsi 和 xmlns:xsd XmlWriterSettings xmlWriterSettings = new XmlWriterSettings(); xmlWriterSettings.Encoding = new UTF8Encoding(false);//设置编码,不能用Encoding.UTF8,会导致带有BOM标记 xmlWriterSettings.Indent = true;//设置自动缩进 //xmlWriterSettings.OmitXmlDeclaration = true;//删除XmlDeclaration:
//xmlWriterSettings.NewLineChars = "\r\n"; //xmlWriterSettings.NewLineHandling = NewLineHandling.None; XmlSerializer xml = new XmlSerializer(type); try { using (XmlWriter xmlWriter = XmlWriter.Create(Stream, xmlWriterSettings)) { //序列化对象 xml.Serialize(xmlWriter, obj, _name); } } catch (InvalidOperationException) { throw; } return Encoding.UTF8.GetString(Stream.ToArray()).Trim(); } #endregion }

 

转载于:https://www.cnblogs.com/sdwdjzhy/p/4173280.html

你可能感兴趣的文章
ch02 fundamental definition 01
查看>>
JSON解析
查看>>
Position is everything?(css定位学习的一些心得)(一)
查看>>
如何提高编程水平
查看>>
Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三
查看>>
Linux查看进程的内存占用情况 分类: ubuntu ...
查看>>
[BZOJ 2818]Gcd
查看>>
FORM值传递与地址传递
查看>>
(译)yaml快速教程
查看>>
C:大数相加
查看>>
160. Intersection of Two Linked Lists
查看>>
人生苦短,我用python-- Day11
查看>>
JAVA Bean
查看>>
ehcache memcache redis 三大缓存男高音_转
查看>>
curd_3
查看>>
百度地图API示例之设置地图显示范围
查看>>
Java构造方法、重载及垃圾回收
查看>>
.Net Core AES加密解密
查看>>
Spring Quartz实现任务调度
查看>>
python | 桶排序、冒泡排序、选择排序、去重
查看>>