关于反射使用

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

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

例子省略,后补上。

你可能感兴趣的:(反射)