函数GetResource() 功能是更新公共变量----i1,i2,i3,i4,i1,i2,i3,i4 分别在listview1 上显示。
有什么办法执行GetResource()后,
listview1上的i1,i2,i3,i4自动变化,
而不需要执行listview1的刷新函数呢?
这个是不是叫做反射?能不能举个例子啊

解决方案 »

  1.   

    http://www.cnblogs.com/wenwuxianren/articles/940197.html
      

  2.   

    做到这个效果 GetResource() 不一定用到反射.
    最简单的反射  public string m_Test = "";        public string Test { get { return m_Test; } set { m_Test = value; } }        private void button2_Click(object sender, EventArgs e)
            {
                Type _ThisTypeInfo =this.GetType();  //获取类信息            System.Reflection.PropertyInfo _PropertyInfo = _ThisTypeInfo.GetProperty("Test");  //获取属性信息            object _ValueText =_PropertyInfo.GetValue(this, null); //取值            _PropertyInfo.SetValue(this, "123", null);    //附值
            }
      

  3.   

    namespace   A
     {
      public   class   TestClass
          {
          private   string   _value;
           public   TestClass(string   value)   
         {
           _value=value;
           }
      }
    }
    Type   t   =   Type.GetType(“A.TestClass”);
    Object[]   constructParms   =   new   object[]   {“hello”};  
    TestClass   obj   =   (TestClass)Activator.CreateInstance(t,constructParms);

      Assembly a = Assembly.LoadFrom(path);
       Type t1 = a.GetType(formName);
        result = (Form)a.CreateInstance(t1.FullName);
    看看MSDN
      

  4.   

    要用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").SetValue(myObj,null));
      

  5.   

    这个不是反射
    这个可以用 观察者机制 observer