1 public class MyClass1
2 {
3 string myMessage = " Hello World. " ;
4 public string MyProperty1
5 {
6 get { return 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;
}