xml序列化

        /// <summary>
        /// xml序列化
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string XmlSerialize<T>(this T obj)
        {
            if (obj == null) throw new NullReferenceException("");

            var settings = new XmlWriterSettings()
            {
                OmitXmlDeclaration = true,//去掉xml声明
                Encoding = Encoding.Default
            };
            var output = new StringBuilder();
            using (XmlWriter writer = XmlWriter.Create(output, settings))
            {
                ////去掉前缀和命名空间
                var ns = new XmlSerializerNamespaces();
                ns.Add(string.Empty, string.Empty);

                var serializer = new XmlSerializer(obj.GetType());
                serializer.Serialize(writer, obj, ns);
            }
            return output.ToString();
        }

        /// <summary>
        /// xml反序列化
        /// </summary>
        /// <typeparam name="T">返回对象类型</typeparam>
        /// <param name="strXML"></param>
        /// <returns></returns>
        public static T DeserializeXml<T>(this string strXML) where T : class
        {
            try
            {
                using (StringReader sr = new StringReader(strXML))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(T));
                    return serializer.Deserialize(sr) as T;
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }

 

        /// <summary>
        ///<![CDATA[ ]]>数据字段
        /// </summary>
        [XmlIgnore] //方式1,这里属性设置忽略
        public string HouseDetail { get; set; }

        [XmlElement("Housedetail")]
        public XmlNode[] CDataContent
        {
            get
            {
                if (HouseDetail!=null)
                {
                    return new XmlNode[]  {new XmlDocument().CreateCDataSection(HouseDetail)};
                }
                else
                {
                    return null;
                }
            }
            set
            {
                HouseDetail =  value.First().Value;
            }
        }
特殊字符处理

 

posted @ 2018-07-23 08:48  凉生凉忆亦凉心  阅读(196)  评论(0编辑  收藏  举报