关于反射使用
第一种:调用本身程序集内的方法
参数: object[] obj = { id };
return (this.GetType().GetMethod(strFunName).Invoke(this,obj)??"").ToString();
或者
Code
MethodInfo mi = this.GetType().GetMethod(FunName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (mi != null) { mi.Invoke(this, obj); //如果没有参数,obj为null } else { MessageBox.Show("找不到方法"); } private void funAdd (string x,string y) { MessageBox.Show(x+y); }
备注:
MethodInfo类是在System.Reflection命名空间底下,既然是在Reflection空间底下。故名思议关于反射相关的操作,其中比较重要的方法是Invoke()方法,它是加载相同程序集的方法
object[] obj = {"a","b"};//对象数组做参数
string FunName = "funAdd "; //字符串做函数名称
2.在前台 ajax 通过反射 调用后台方法(包含前台参数是对象类型和反射加载数据源的方式)
ths:http://www.cnblogs.com/incubator/archive/2011/12/09/2281449.html(重点里面第二个例子)
前台:
var data = new Object();
data.act = "GetVal";
data.arg = $("#txtVal").val();
$.post("Default.aspx", data, function (data) { alert(data); });
第二种:反射 调用 外部.dll的方法
例子省略,后补上。