开发过程中Type.GetProperty()的使用

来源:互联网 发布:ubuntu安装wifi驱动 编辑:程序博客网 时间:2024/05/22 14:18

按摩器十大品牌 
海南网址导航

海南搜人才


public class MyClass1
2 {
3     string myMessage = "Hello World.";
4     public string MyProperty1
5     {
6         getreturn myMessage; }
7         set{ myMessage = value; }
8     }
9 } public class Example
        {
            
public static void Demo()
            {
                
//首先创建对象
                MyClass1 Class = new MyClass1();
                
//获得对象的类型,myClass1
                Type myType = Class.GetType();
                
//查找名称为"MyProperty1"的属性
                PropertyInfo myStringProperties1 = myType.GetProperty("MyProperty1");
                
//查找myClass1类的Class对象的"MyProperty1"属性的值
                MessageBox.Show(myStringProperties1.GetValue(Class, null).ToString());
            }

        }

=============================================================================
使用
============================================================================
        /// <summary>
        /// 审核时使用,检查审核前与审核后费用项目的金额是否改变
        /// updata:2011-10-28 liwh 修改错误匹配,不能用属性去匹配值,而应该用属性值去匹配值。否则永远都不相等。
        /// </summary>
        public bool IsItemChage(Iws_baoxiao_detail baoxiao,Hashtable ht)
        {
            WsBaoxiaoProjectDao projectDao = new WsBaoxiaoProjectDao();
            IList projectList = projectDao.GetByRegionId("97");  //由于各个地区的费用项目表都相同
            //获得对象的类型
            Type t = baoxiao.GetType();
            foreach (ws_baoxiao_project project in projectList)
            {
                if (ht[project.project_code] != null)
                {
                    string proCode = project.project_code;


                    //查找名称为"proCode"的属性
                    PropertyInfo propertyInfo = t.GetProperty(proCode);
                    //第一个参数是要获取哪一个对象的属性值
                    decimal money1 = decimal.Parse(propertyInfo.GetValue(baoxiao, null).ToString().Trim());
                    decimal money2 = decimal.Parse(ht[proCode].ToString().Trim());


                    if (money1 != money2) //原 if (pt.GetProperty(project.project_code).ToString().Trim() != ht[project.project_code].ToString().Trim())
                    {
                        return true;
                    }
                }
            }
            return false;
        }

按摩器十大品牌

海南网址导航

海南搜人才


原创粉丝点击