zoukankan      html  css  js  c++  java
  • ASP.NET XML序列化

    整理一下ASP.NET里面如何序列化实体为XML,获取解析XML内容为实体。

    第一步要添加程序集引用,项目-->引用-->鼠标右键-->添加引用-->选择程序集-->System.Xml

      

    工具类代码

        /// <summary>
        /// XML序列化公共处理类
        /// </summary>
        public static class XmlSerializeHelper
        {
            /// <summary>
            /// 将实体对象转换成XML
            /// </summary>
            /// <typeparam name="T">实体类型</typeparam>
            /// <param name="obj">实体对象</param>
            public static string XmlSerialize<T>(T obj)
            {
                try
                {
                    using (StringWriter sw = new StringWriter())
                    {
                        Type t = obj.GetType();
                        XmlSerializer serializer = new XmlSerializer(obj.GetType());
                        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                        ns.Add("", "");//把命名空间设置为空
                        serializer.Serialize(sw, obj,ns);
                        sw.Close();
                        return sw.ToString();
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("将实体对象转换成XML异常", ex);
                }
            }
    
            /// <summary>
            /// 将XML转换成实体对象
            /// </summary>
            /// <typeparam name="T">实体类型</typeparam>
            /// <param name="strXML">XML</param>
            public static T DESerializer<T>(string strXML) where T : class
            {
                try
                {
                    using (StringReader sr = new StringReader(strXML))
                    {
                        strXML = Regex.Replace(strXML, @"<?xml*.*?>", "", RegexOptions.IgnoreCase);
                        XmlSerializer serializer = new XmlSerializer(typeof(T));
                        return serializer.Deserialize(sr) as T;
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception("将XML转换成实体对象异常", ex);
                }
            }
        }

    文件流转成XML

                var xmlDoc = new XmlDocument();
                try
                {
                    var stream = new Stream();
                    xmlDoc.Load(stream); //加载XML文档
                    var entryInfo = XmlSerializeHelper.DESerializer<Model>(xmlDoc.OuterXml);
                    if (entryInfo != null)
                    {
                        // 逻辑处理
                    }
                    else
                    {
                        //逻辑处理
                    }
                }
                catch (Exception ex)
                {
                      //异常处理
                }
  • 相关阅读:
    笔记 : windows系统下 命令行 php --version 的版本与phpinfo()版本不一致问题
    笔记 : WampServe加装PHP版本(7.2.3)为例
    Browsersync结合gulp和nodemon实现express全栈自动刷新
    PHP与JSP简单比较
    BDD 与DSL 入门
    1.display:flex布局笔记
    Css预处理器---Less(三)
    python_30期_第2讲【字符串&运算符】
    python_30期_第5讲【while循环+for循环】
    class_05py作业
  • 原文地址:https://www.cnblogs.com/dawenyang/p/14474362.html
Copyright © 2011-2022 走看看