C#中PropertyGrid控件绑定对象后更改属性值写回到xml中的一个有效方法

  这两天项目开发过程中遇到的一个问题,就是PropertyGrid控件的对象的属性值修改后怎么写回到xml中的问题

由于属性项不统一,不能每个类的属性都去写一个单独的方法,这样需啊的类和方法就特别多,处理起来也特别麻烦,所以就想,能不能动态的知道一个类都有哪些属性呢,于是想到了反射。

要使用反射需要先引入命名空间 using System.Reflection;

我们可以用反射来得绑定类的所有属性,再将属性写回xml中。   

   

  /// <summary>
        /// 更新xml文件
        /// </summary>
        /// <param name="obj">绑定PropertyGridUC的对象</param>
        /// <param name="xmlPath">xml文件的路径</param>
        /// <param name="root">路径</param>
        private void updateXMLProperty(object obj, string xmlPath, string root)
        {

    //获取属性集合
            PropertyInfo[] propertyInfoArray = obj.GetType().GetProperties();
            XmlDocument doc = new XmlDocument();
            doc.Load(xmlPath);
            XmlNode node = doc.SelectSingleNode(root); ;
            XmlElement xe = (XmlElement)node;
            foreach (PropertyInfo property in propertyInfoArray)
            {
                string value="";
                try
                {

   //获取属性的值
                    value = property.GetValue(obj, null).ToString();
                }
                catch
                {
                    value = "";
                }
                xe.SetAttribute(property.Name, value);
               
            }
            doc.Save(xmlPath);
        }

   

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页