很多朋友要根据某对象的字段名来访问该对象,这里有个简单的办法:
public class obj
{
public int id = 99;
public string name = "gg";
}
先在文件开始处加上:using System.Runtime.InteropServices;
在其他函数中:
obj o = new obj();
Type t = typeof(obj);
t.InvokeMember("id", BindingFlags.SetField, null, o, new object[] {88 }); //设置字段内容
int i = (int)t.InvokeMember("id", BindingFlags.GetField, null, o, new object[] { }); //获取字段内容
InvokeMember函数:
Object InvokeMember ( string name, BindingFlags invokeAttr, Binder binder, Object target, Object [] args )
其中BindingFlags这个参数是个枚举类型,通过它的设置,不仅可以访问对象的字段,还可以访问对象的属性和方法
Object[] args就是传送的参数,设置字段或者属性的时候传送需要设置的值,如果是访问的方法,它就是该方法所需的参数