c#高效反射調用方法類

c#高效反射調用方法類

ID:14168985

大小:39.50 KB

頁數(shù):13頁

時間:2018-07-26

c#高效反射調用方法類_第1頁
c#高效反射調用方法類_第2頁
c#高效反射調用方法類_第3頁
c#高效反射調用方法類_第4頁
c#高效反射調用方法類_第5頁
資源描述:

《c#高效反射調用方法類》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、C#高效反射調用方法類Asp.Net和php中的md5C#中const與readonly的用法和區(qū)別C#高效反射調用方法類C#2010-10-2814:53:12閱讀62評論0字號:大中小訂閱MethodInfomethodInfo=typeof(Program).GetMethod("Call");methodInfo.Invoke(program,parameters);methodInfo實際上已經(jīng)用到反射了,只不過此時的反射相比較于后邊的Invoke方法性能損失很小,可以忽略,影

2、響性能部分在Invoke而不在一次簡單的GetMethod,MethodInfo可以緩存,因此只需要取一次就夠了,所以完全可以忽略不計。方法一:不需要用emit和lambda只要用Deleaget就能達到高效率:1.privatedelegatevoidmyDelegate(stringstr);privatestaticmyDelegateexecPage=null;publicvoidPage_Load(){if(execPage==null){//AppUtilityapp=newAppUtility

3、();//execPage=(myDelegate)Delegate.CreateDelegate(typeof(myDelegate),app,"ExecutePage");//執(zhí)行實體類的方法execPage=(myDelegate)Delegate.CreateDelegate(typeof(myDelegate),typeof(AppUtility),"ExecutePage");//靜態(tài)類方法}execPage("TP_Default.aspx");}2.Funcf=Delegate.Create

4、Delegate(typeof(Func),MethodInfo);f(...);http://blog.zhaojie.me/2008/11/invoke-method-by-lambda-expression.html方法二:使用傳統(tǒng)的.net反射機制,調用類的方法時,在調用頻率大的情況下,會感覺速度很慢。最近瀏覽盧彥的博客時,找到一個他改進后的反射調用類。試用以后感覺效率明顯提高,特推薦給大家。作者重新實現(xiàn)了,反射調用方法,但是調用接口和.net原有方法一致。而且調用時拋出的異常為所調用類的實際異常,

5、不像傳統(tǒng)方式返回為包裝異常。文章來源:http://www.codeproject.com/csharp/FastMethodInvoker.asp快速反射調用類usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Reflection;usingSystem.Reflection.Emit;namespaceFastMethodInvoker{classFastInvoke{publicdelegateobject

6、FastInvokeHandler(objecttarget,object[]paramters);staticobjectInvokeMethod(FastInvokeHandlerinvoke,objecttarget,paramsobject[]paramters){returninvoke(null,paramters);}publicstaticFastInvokeHandlerGetMethodInvoker(MethodInfomethodInfo){DynamicMethoddynamicM

7、ethod=newDynamicMethod(string.Empty,typeof(object),newType[]{typeof(object),typeof(object[])},methodInfo.DeclaringType.Module);ILGeneratoril=dynamicMethod.GetILGenerator();ParameterInfo[]ps=methodInfo.GetParameters();Type[]paramTypes=newType[ps.Length];for

8、(inti=0;i

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。