zoukankan      html  css  js  c++  java
  • C# 将对应的xml文档赋值给指定模型(对象)

      public static IList<T> XmlToEntityList<T>(string xml) where T : new()
            {
                XmlDocument doc = new XmlDocument();
                try
                {
                    doc.LoadXml(xml);
                }
                catch(Exception ex)
                {
                    ex.ToString().LogAllRecord();
                    return null;
                }

    return  EINModel<T>(doc);

    }

    private static IList<T> EINModel<T>(XmlDocument doc) where T : new()
            {
                XmlNode node = doc.ChildNodes[1];
                if (node == null) { return null; }
                XmlNode subNode = node.ChildNodes[1];
                IList<T> items = new List<T>();
                foreach (XmlNode a in subNode.ChildNodes)
                {
                    items.Add(XmlNodeToEntity<T>(a));
                }
                return items;
            }

            private static T XmlNodeToEntity<T>(XmlNode node) where T : new()
            {
                T item = new T();

                if (node.NodeType == XmlNodeType.Element)
                {
                    XmlElement element = (XmlElement)node;

                    System.Reflection.PropertyInfo[] propertyInfo =
                typeof(T).GetProperties(System.Reflection.BindingFlags.Public |
                System.Reflection.BindingFlags.Instance);

                    foreach (XmlNode attr in element.ChildNodes)
                    {
                        foreach (System.Reflection.PropertyInfo pinfo in propertyInfo)
                        {
                            if (pinfo != null)
                            {
                                if (pinfo.Name.ToLower() == attr.Name.ToLower())
                                {
                                    pinfo.SetValue(item, attr.InnerText, null);
                                    break;
                                }
                            }
                        }

                    }
                }
                return item;
            }

  • 相关阅读:
    C# Xamarin For Android自动升级项目实战
    C# Xamarin移动开发基础进修篇
    .NET轻量级ORM框架Dapper入门精通
    ASP.NET WebApi技术从入门到实战演练
    (简单、可靠的安装方法)在Windows Server2016中安装SQL Server2016
    ASP.NET (Core) WebAPI IIS PUT和DELETE请求失败 405的解决办法
    js中判断对象是否为空的三种实现方法
    windows10如何设置只显示时间不显示日期
    NuGet微软官方中国国内镜像
    Win10找不到hosts文件解决方法
  • 原文地址:https://www.cnblogs.com/LuoEast/p/10683020.html
Copyright © 2011-2022 走看看