[转]C#反射技术之一读取和设置类的属性

it2025-10-31  15

要用C#反射技术的话,首先得引入System.Reflection 命名空间,这个命名空间里的类,具有动态加载程序集、类型,动态调用方法、设置和取得属性和字段的值、可以获取类型和方法的信息的功能。 要想对一个类型实例的属性或字段进行动态赋值或取值,首先得得到这个实例或类型的Type,微软已经为我们提供了足够多的方法。

Class MyClass {   private int field;   public int Field    {      get         {           return this.field;          }       set           {             this.field = value;           }     }  } 如果有个这个类型的实例: MyClass myObj = new MyClass(); 我们要动态的为这个实例的属性 Field赋值,那么得先得到这个实例的类型: Type t = typeof (MyClass); 另一种写法是: Type t = myObj.GetType(); 只要我们得到了对象的类型那么我们就可以利用反射对这个对象“为所欲为”了,哈哈。 t.GetProperty( " Field " ).SetValue(myObj, 1 , null ); 这样我们就为对象里的属性Field赋值了。如果把属性名和要赋的值写道配置文件里的话,我们就可以达到程序运行期间动态的为属性赋值了。 利用反射获取属性值的方法: int propValue = Convert.ToInt32(t.GetProperty( " Field " ).GetValue(myObj, null )); 好了,关于利用反射动态的为对象的属性赋值取值就到这里了。

转载于:https://www.cnblogs.com/zhahost/archive/2009/05/12/1454680.html

相关资源:数据结构—成绩单生成器
最新回复(0)