关于反射使用

 第一种:调用本身程序集内的方法

参数: 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的方法

例子省略,后补上。

posted @ 2013-04-28 17:41  365lei  阅读(133)  评论(0编辑  收藏  举报