您的位置:首页 > 编程语言 > C#

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

2016-01-17 13:24 621 查看
  这两天项目开发过程中遇到的一个问题,就是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
4000
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);

        }

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息