相关文章推荐
ILSpy 安裝
ILSpy 是一套 Open Source 的反組譯套件,目前最新版為 5.0 preview 版本且支援 C# 7.3 與 8.0,可以透過兩種方式進行安裝,如下所示
下載安裝檔可以透過 Github 網頁 : 傳送門
Chocolate 安裝
或是也可以透過 Chocolate 進行安裝,沒用過請服用此文 : Windows 套件管理工具 - Chocolatey 初體驗
choco install ilspy --pre
安裝完畢後點選 ILSpy.exe 開啟畫面如下
左邊區塊為導覽,可以點選你想查看的 dll,右邊是反組譯的內容,舉例來說想了解 System.Net 底下有 WebRequest 的連線 timeout 時間,就可以發現程式碼定義預設逾時時間為 100000
載入 DLL
點選左上角 File > Open 可以載入 dll,一般開發 dll 都存在於專案目錄 bin 資料夾( project / bin) 底下,如果是 .NET Core Console 專案,bin 底下則會有兩個資料夾分別是 net461 以及 netcoreapp2.2
載入完 dll 後點選加入的 dll 名稱右邊就會出現反組譯後的內容,在與原始代碼相比較發現會有些不同之處,例如加上 private、new TimeSpan 變為 default(TimeSpan) 等編譯後的差異
class Program
    static TimeSpan total = new TimeSpan();
    static object tsLock = new object();
    static async Task Main(string[] args)
        // 省略
在上面 Toolbar 選項還可以選擇查看 C# 或是 IL Code,以及透過各個 IDE 與 C# 版本編譯後 Code 內容 (預設是最新 C# 8.0 / VS2019),從中可以發現編譯出來的代碼會因為版本不同會有所差異,可以參考下圖
透過以上說明,可以了解使用上十分容易上手,如果想了解更多細節與內容,可以參考官網說明 : ILSpy
ILSpy
  • [.NET] ILSpy 程式碼反組譯工具
  • [UnitTest] ASP.NET Core 2.2 測試專案中的版本衝突
  • [.NETCore] ASP.NET Core 學習資源包 - awesome dotnetcore
  • [IIS] 程序無法存取檔案,因為檔案正由另一個程序使用。(發生例外狀況於HRESULT:0x800...
  • [.NETCore] 如何取得 appsettings.json 組態設定
  • [UnitTest] 如何測試目標方法中 Guid 型別的代碼 ?
  • [VisualStudio] .NET 分析測試代碼覆蓋率 AxoCover
  • [IIS] IIS 站台服務異常中止 - HttpEvent
  • [.NETCore] 'IWebHostBuilder' does not contain a de...
  • [.NETCore] ASP.NET Core - Kestrel Web Server
  • [.NETCore] 在 IIS 執行 ASP.NET Core 應用程式
  • [MSSQL] 在 T-SQL 使用 PATINDEX 搜尋關鍵字
  • [VisualStudio] Unable to connect to web server 'II...
  • [Tool] URL Render - 搜尋清單直接預覽網頁內容
  • [Redis] 在 CentOS7 上安裝 Redis
  • [.NETCore] ASP.Net Core 使用 Big5 中文編碼
  • [.NETCore] ASP.NET Core - Logging 日誌初體驗 (二)
  • [.NETCore] ASP.NET Core - Logging 日誌初體驗 (一)
  • [.NETCore] ASP.NET Core - 使用 NLog 紀錄日誌資訊
  • [CheatSheets] Docker Command Diagram
  • [Docker] 修改 Docker image 預設存放位置
  • [Powershell] Windows中開啟PowerShell的幾種方式
  •  
    推荐文章