函数GetResource() 功能是更新公共变量----i1,i2,i3,i4,i1,i2,i3,i4 分别在listview1 上显示。
有什么办法执行GetResource()后,
listview1上的i1,i2,i3,i4自动变化,
而不需要执行listview1的刷新函数呢?
这个是不是叫做反射?能不能举个例子啊
有什么办法执行GetResource()后,
listview1上的i1,i2,i3,i4自动变化,
而不需要执行listview1的刷新函数呢?
这个是不是叫做反射?能不能举个例子啊
解决方案 »
- VS2008 AJAX问题
- C#中用什么方法可以知道U盘的盘符
- 对Stream流的疑惑
- C#.net,web页面,一个Table里面动态生成多行,行里面放的是CheckBox控件,如何访问这个CheckBox是否被选中啊!
- 用api函数添加自定义纸张,能成功添加,却获取不到,求救!
- 两个picturebox 的背景图是否相同的判断
- Microsoft Visual Studio 2005打包工具
- 调用avicap32.dll第一次成功,以后都无法调用
- winform 中的TextBox的换行问题
- 100分求解!先答先得!
- .NET中Frame框架的应用?
- 【分享】asp.net中DataTime的各种使用方法
最简单的反射 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); //附值
}
{
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
要想对一个类型实例的属性或字段进行动态赋值或取值,首先得得到这个实例或类型的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));
这个可以用 观察者机制 observer