我想家喻戶曉的 .NET Reflector 工具應該不用我多做介紹,但昨天無意間發現一個不錯的 Reflector 外掛工具叫做 PowerCommands for Reflector,當安裝完成後會多出將近 20 個貼心小功能 (陸續增加中…),讓你在使用Reflector 的時候多出一些功能選項協助你瀏覽 .NET 組件。
如何安裝 PowerCommands for Reflector ( 共 4 個步驟 )
1. 先進入下載專區下載最新版程式 ( 有區分 x86 與 x64 架構 )
2. 解壓縮下載的檔案至 Reflector 安裝目錄
備註: Reflector 為綠色軟體,你只要將檔案解壓縮至 Reflector 所在目錄即可
3. 開啟 .NET Reflector 並點選 [View] / [Add-Ins…] 選單
4. 將 Reflector.PowerCommands.dll 組件新增到 Add-Ins 清單中
如何使用 PowerCommands for Reflector
PowerCommands for Reflector 外掛程式將所有功能打散在 Reflector 工具的每一個角落,所以你沒辦法在同一個地方使用所有功能,以下我用不同區域做分類解釋各功能:
[ 主選單區 ]
1. Open Zip ( 直接開啟 ZIP 壓縮檔內的 .NET 組件 )
開啟時會自動由 PowerCommands for Reflector 解壓縮組件至 [我的文件] 目錄下的 Reflector\Unzipped 目錄下,此功能只是方便你不用先執行解壓縮動作而已。
2. Assembly List Import/Export ( 匯入/匯出組件清單 )
當你有多個 組件清單(Assembly List) 時,你可以將這些清單匯出儲存起來,並將匯出的 XML 檔帶到其他台電腦後匯入,跟團隊其他成員分享不同的組件清單。
另外我也順帶講一下 組件清單(Assembly List) 的使用教學:
先建立組件清單名稱
選取後會開始另一組組件清單並讓你設定另一批組件
日後你可以直接用 [File] / [Open List] 載入不同專案的組件清單。
而透過 Assembly List Import/Export 的功能就可以讓你匯出整份組件清單,並且可隨時匯入組件清單到其他電腦,匯入後可利用 [File] / [Open List] (或用快速鍵 Ctrl + L ) 載入被匯入的組件清單。
以下是匯出時的畫面
3. Reorder Assemblies ( 重新排序組件列表 )
將目前的組件清單以命名空間的字母順序進行排序。此功能除了出現在主選單外,也會出現在組件列表的滑鼠右鍵選單中。
4. Collapse All ( 收起所有組件列表的開啟狀態 )
將所有樹狀結構中已開啟的項目全部收合起來。此功能除了出現在主選單外,也會出現在組件列表的滑鼠右鍵選單中。
5. Bookmarks Menu ( 書籤選單 )
書籤功能其實是 Reflector 內建的功能,在選取到你想要的組件、類別或成員後按下 Ctrl + K 即可建立書籤,下次開啟 Reflector 時就可以直接透過書籤跳到那個位置,但沒安裝 PowerCommands for Reflector 之前你必須按下 F2 開啟書籤視窗後才能選取書籤,安裝 PowerCommands for Reflector 後就可以直接透過主選單選取書籤,操作上的確比較方便。
[ 命名空間層級’s 滑鼠右鍵選單區 ]
6. Create Assembly Binding Redirect ( 建立組件繫結重新導向 )
組件繫結重新導向功能在實務上不是很常用到,但需要的人就可以利用這個功能幫你建立組件繫結重新導向的 XML 定義,其實算是個貼心的小工具。
假設你選取 System.Web, Version 2.0.0.0 這個組件並點選 [Create Binding Redirect] 選項,這時會出現 Versions 對話框,當你希望應用程式可以改變組件繫結的版本時就可以直接在 New Version 欄位輸入要轉向的版本編號,然後再按下 Copy To Clipboard 即可將設定內容複製到剪貼簿中,然後再到應用程式組態檔中貼上 (Ctrl + V) 該設定即可。詳情請見: 設定組件繫結重新導向 & Introduction to Versioning and BindingRedirect
7. Create Shortcut
當你選取命名空間、組件、類別或類別成員時,按下 [Create Shortcut] 會在你的桌面建立一個快捷項目(Shortcut),下次要開啟 Reflector 時只要點選這個項目就可開啟 Reflector 並自動開啟到當時建立的那個位置。此功能同時也會出現在 [組件層級’s 滑鼠右鍵選單區]、[類別層級’s 滑鼠右鍵選單區] 與 [類別成員層級’s 滑鼠右鍵選單區]。
[ 組件層級’s 滑鼠右鍵選單區 ]
8. Run ( 執行該組件 )
當你選取的組件是「可執行檔」時,才會出現 Run 這個選項,點選後會直接執行該組件。
9. Open VS2005/VS2008/VS2010 Command Prompt ( 開啟該組件所在位置的命令提示字元 )
開啟命令提示字元(cmd.exe),開啟後直接進入組件所在目錄。
10. Open Windows Explorer ( 開啟該組件所在位置的檔案總管 )
開啟檔案總管,開啟後直接進入組件所在目錄。
11. Open with ILDasm ( 以 ILDasm 工具開啟該組件 )
開啟 ILDasm 工具,並直接載入該組件。
12. Open With ( 以其他外部程式開啟檔案 )
以其他外部程式開啟組件檔,你可以自行定義一些外部的應用程式 (例如 Visual Studio 2008) 直接開啟組件、類別、類別成員、資源檔、…等等。如果你點選類別或類別成員並利用 Open With 功能開啟時,PowerCommands for Reflector 會幫你將 Reflector 反解過的原始碼儲存到 [我的文件] 目錄下的 Reflector\Exports 目錄下。此功能同時也會出現在 [類別層級’s 滑鼠右鍵選單區] 與 [類別成員層級’s 滑鼠右鍵選單區] 與 [組件資源’s 滑鼠右鍵選單區]。
13. Copy Path ( 複製組件路徑 )
此功能讓你複製組件所在的完整路徑檔名或所在目錄路徑。
[ 類別層級’s 滑鼠右鍵選單區 ]
14. Enum Viewer ( 列舉檢視器 )
Reflector 預設就可以檢視所有列舉項目(Enum),但列舉項目無法依照字母排序,也無法強制顯示列舉實際的數值,利用 Enum Viewer 讓你可以在主選單的 [View] / [Options] 中可設定列舉顯示的方式:
15. Bit Flag Converter ( 位元旗標轉換器 )
只要有標上 [Flags] 屬性 (Attribute) 的 列舉型別 (enum) 都可以使用這個功能,其實只是一個簡單的二進位計算機而已。例如 System.Data.CommandBehavior 列舉就是一個標有 [Flags] 的型別,點選 Bit Flag Converter 後就會出現該列舉的所有清單,當你點選完後就會出現你勾選的項目做 Bit Mask 運算後的結果 (十進位)。
[ 類別成員層級’s 滑鼠右鍵選單區 ]
16. Email Code ( 轉寄程式碼 )
此功能可將你選取的類別成員程式碼透過 mailto: 通訊協定開啟預設的本機郵件軟體 (例如: Outlook),並將程式碼填入到郵件內容中,方便你快速轉寄程式碼給其他人。
[ 組件資源’s 滑鼠右鍵選單區 ]
17. Open with Paint ( 以小畫家開啟該圖片 )
當選取的組件資源是圖片類型的檔案時就可直接以小畫家開啟該圖片。
18. Save As RESX ( 將 .resources 資源檔儲存成 *.resx 檔 )
當選取的組件資源是 *.resources 格式時,使用此功能就能將該資源儲存成 XML 格式的 *.resx 資源檔。
---
我的天啊,這篇文章花了我整整三個小時撰寫,比我預期的撰寫時間還長,不過一條一條的測試/試用之後也對 Reflector 有了更深一層的認識,算是利用 PowerCommands for Reflector 精通了 Reflector 所有操作技巧吧,收穫頗多。 ^_^
相關連結