C#序列化s实体类成Xml,去除空格、换行符以及命名空间

序列化实体类成为一个干净的Xml,不带空格、换行符以及命名空间

        /// <summary>
        /// 序列化成XML
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string XmlSerialize<T>(T obj, Encoding encoding)
        {
            string result = string.Empty;
            try
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
                    //序列化对象
                    XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
                    namespaces.Add("", "");

                    XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, encoding);

                    xmlTextWriter.Formatting = System.Xml.Formatting.None;
                    xmlSerializer.Serialize(xmlTextWriter, obj, namespaces);
                    xmlTextWriter.Flush();
                    xmlTextWriter.Close();

                    result = encoding.GetString(memoryStream.ToArray());
                }
            }
            catch
            {
                
            }
            return result;
        }

 

posted @ 2015-09-25 11:19    阅读(2626)  评论(0编辑  收藏  举报