2008年9月1日 星期一

.NET Framework 原始碼

原來早在去年年底,Microsft 已經將 .NET Framework 一部分的原始碼釋放出來,讓大家在 Debug 的時候更加方便(讓你可以進入 Framework 的程式碼),而且也可以更加了解 Framework 裡面的內部結構。不過目前好像只有這幾個 DLL 有 (已更新到 SP1):

  • Mscorlib.DLL
  • System.DLL
  • System.Data.DLL
  • System.Drawing.DLL
  • System.Web.DLL
  • System.Web.Extensions.DLL
  • System.Windows.Forms.DLL
  • System.XML.DLL
  • WPF (UIAutomation*.dll, System.Windows.DLL, System.Printing.DLL, System.Speech.DLL, WindowsBase.DLL, WindowsFormsIntegration.DLL, Presentation*.dll, 以及一些其他)
  • Microsoft.VisualBasic.DLL
  • *資料來自 http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx

    使用方式非常簡單,到 [工具] - [選項] - [偵錯] 設定這兩個選項:

    1. 將 [啟用 Just My Code (僅限 Managed)] 選項停用
    2. 然後將 [啟用來源伺服器支援] 啟用

    image

    這樣就可以了。接下來在程式碼隨便一個地方設中斷點,然後執行程式讓它中斷。在呼叫堆疊的地方選一個想要看原始碼的呼叫,滑鼠按右鍵然後選 [載入符號來源] - [Microsoft 符號伺服器]。等他下載完之後堆疊裡的呼叫就不會是反白,這時在呼叫上按兩下可以就可以看原始碼了,下圖是 System.Windows.Forms.Control 的原始碼:

    image

    沒有留言: