下麵是兩個反射的實例 案例1: 動態調用類中的方法、傳入參數,並獲得返回值。 xxxx:類名 Event:類中的方法 pra1,pra2,pra3:方法對應的入參 DoRet:方法返回的執行結果 案例2: 動態載入外部DLL,並執行其中的方法。 xxx:外部Dll的名字 zzz:Dll中的類名 yy ...
下麵是兩個反射的實例
案例1:
動態調用類中的方法、傳入參數,並獲得返回值。
xxxx:類名
Event:類中的方法
pra1,pra2,pra3:方法對應的入參
DoRet:方法返回的執行結果
Type t = typeof(xxxx);//類名 MethodInfo mt = t.GetMethod(Event);//載入方法 string DoRet = mt.Invoke(this, new object[] { pra1, pra2, pra3 }).ToString();//執行
案例2:
動態載入外部DLL,並執行其中的方法。
xxx:外部Dll的名字
zzz:Dll中的類名
yyy:方法名
pra1,pra2:入參
Ret:調用yyy的返回結果
Assembly ass = null; Type tp; Object obj; ass = Assembly.Load("xxx");//dll名字 tp = ass.GetType("xxx.zzz");//類名 obj = Activator.CreateInstance(tp);//實例化 MethodInfo meth = tp.GetMethod("yyy");//載入方法 int Ret= meth.Invoke(obj, new Object[] { pra1, pra2 }).ToString();//執行
案例3:
動態執行方法和匹配參數
1.從http請求中解析出方法method和輸入參數paras
2.從類中獲取method的入參列表lists
3.匹配lists和paras,如果paras少於lists,則用空值代替
4.調用對應的方法