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);


    读取该对象的熟悉值

    int propValue = Convert.ToInt32(t.GetProperty("Field").GetValue(myObj,null));

    好了,关于利用反射动态的为对象的属性赋值取值就到这里了。

  • 相关阅读:
    Maven项目多环境之间的配置文件的切换
    使用vue脚手架快速创建vue项目(入门)
    SpringAOP之使用切入点创建通知
    epoll的陷阱
    epoll-1
    openSUSE Leap 15格式化挂载新分区
    openSUSE Leap 15取消自动登录
    openSUSE Leap 15通过windows rdp访问
    openSUSE Leap 15安装打开ssh
    数组、函数与指针
  • 原文地址:https://www.cnblogs.com/shuzhengyi/p/1848993.html
Copyright © 2011-2022 走看看