為您解讀.NET Framework內(nèi)置程序集內(nèi)容
如何正確運用.NET Framework幫助我們提高編程效率,對于一個編程人員來說是非常重要的。我們在這里先來了解一下通過對.NET Framework內(nèi)置程序集的調(diào)試來完成相關(guān)功能的具體操作方法。#t#
最近想實現(xiàn)GridView+存儲過程的分頁:
1)使用GridView內(nèi)置的分頁模板. 畢竟內(nèi)置的已經(jīng)很好了.
2)類似DataGrid的VirtualItemCount, 設(shè)置一個VirtualCount,希望GridView就展現(xiàn)對應(yīng)的頁數(shù)
3)Page的基類(PageBase.cs) , 自動take care翻頁事件.
4)Page根據(jù)基類處理后的結(jié)果,向DAO請求當(dāng)前頁數(shù)據(jù).(取20條在100w條中)
未能解決, 陷入到PagedDataSource類中. 仍不知所以. 決定追蹤GridView RenderPager的過程.
調(diào)試.NET Framework內(nèi)置程序集:
1)生成IL文件: ildasm /tok /byt system.web.dll /out=system.web.il
2)重新生成PDB/DLL: ilasm system.web.il /DEBUG /DLL /OUTPUT=System.Web.dll , 將生成dll/pdb兩個文件
3)殺死占用system.web.dll 的進(jìn)程: W3WP,Aspnet_state,VisualStudio2005.
4)拷貝dll/pdb到GAC: copy system.web.pdb c:\windows\assembly\GAC_32\system.web\2.0.0.0__b03f5f7f11d50a3a\
5)VS2005-工具-選項-調(diào)試-常規(guī), 取消勾選:"僅我的代碼"
6)正常調(diào)試一個頁,跟進(jìn):this.gridView.DataBind(). 即可跟進(jìn)到System.Web.IL文件中了.
.NET Framework內(nèi)置程序集的調(diào)試可能需要的:
7)取消System.Web.dll強名稱校驗: sn -Vr System.Web.dll
8)注冊到GAC : gacutil -i system.web.dll