zoukankan      html  css  js  c++  java
  • C#反射技术之一读取和设置类的属性

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

     1 Class MyClass
     2 {
     3   private int field;
     4   public int Field
     5   {
     6      get
     7        {
     8           return this.field;
     9         }
    10      set
    11         {
    12            this.field = value;
    13         }
    14   }
    15 }
    如果有个这个类型的实例:
    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));
    好了,关于利用反射动态的为对象的属性赋值取值就到这里了。
    作者:王春明 出处:http://wangchunming.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    OKR实施方法——关于思路和流程的思考
    如何制作一份疫情场所分布地图?(附数据和源码)
    经纬度编码方法推荐-plus code简介
    快递到车服务的实现思路和问题思考
    ACC自适应巡航控制系统介绍
    《无人驾驶》-了解无人驾驶最佳读物
    手把手教你制作微信小程序,开源、免费、快速搞定
    2点GPS坐标求方位角
    GPRS 应用详解_GPRSsim800c(转)
    STM32的ADC采样与多通道ADC采样(转)
  • 原文地址:https://www.cnblogs.com/wangchunming/p/2673261.html
Copyright © 2011-2022 走看看