The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

介紹好用工具:PowerCommands for Reflector [含使用教學]

我想家喻戶曉的 .NET Reflector 工具應該不用我多做介紹,但昨天無意間發現一個不錯的 Reflector 外掛工具叫做 PowerCommands for Reflector,當安裝完成後會多出將近 20 個貼心小功能 (陸續增加中…),讓你在使用Reflector 的時候多出一些功能選項協助你瀏覽 .NET 組件。

如何安裝 PowerCommands for Reflector ( 共 4 個步驟 )

1. 先進入下載專區下載最新版程式 ( 有區分 x86 與 x64 架構 )

    1. 先進入 PowerCommands for Reflector 下載專區下載最新版程式 ( 有區分 x86 與 x64 架構 )

2. 解壓縮下載的檔案至 Reflector 安裝目錄
    備註: Reflector 為綠色軟體,你只要將檔案解壓縮至 Reflector 所在目錄即可

    2. 解壓縮下載的檔案至 Reflector 安裝目錄

3. 開啟 .NET Reflector 並點選 [View] / [Add-Ins…] 選單

3. 開啟 .NET Reflector 並點選 [View] / [Add-Ins…] 選單

4. 將 Reflector.PowerCommands.dll 組件新增到 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 目錄下,此功能只是方便你不用先執行解壓縮動作而已。

Red Gate's .NET Reflector :: Open Zip

2. Assembly List Import/Export ( 匯入/匯出組件清單 )

當你有多個 組件清單(Assembly List) 時,你可以將這些清單匯出儲存起來,並將匯出的 XML 檔帶到其他台電腦後匯入,跟團隊其他成員分享不同的組件清單。

另外我也順帶講一下 組件清單(Assembly List) 的使用教學:

先建立組件清單名稱

Red Gate's .NET Reflector :: Open List Red Gate's .NET Reflector :: Open List :: Add New List

選取後會開始另一組組件清單並讓你設定另一批組件

Red Gate's .NET Reflector :: Start 'New List 1' Assembly List

日後你可以直接用 [File] / [Open List] 載入不同專案的組件清單。

而透過 Assembly List Import/Export 的功能就可以讓你匯出整份組件清單,並且可隨時匯入組件清單到其他電腦,匯入後可利用 [File] / [Open List]  (或用快速鍵 Ctrl + L ) 載入被匯入的組件清單。

Red Gate's .NET Reflector :: [Tools] / [Import/Export Assembly List] / [Export]

以下是匯出時的畫面

Red Gate's .NET Reflector :: [Tools] / [Import/Export Assembly List]

3. Reorder Assemblies ( 重新排序組件列表 )

將目前的組件清單以命名空間的字母順序進行排序。此功能除了出現在主選單外,也會出現在組件列表的滑鼠右鍵選單中。

4. Collapse All ( 收起所有組件列表的開啟狀態 )

將所有樹狀結構中已開啟的項目全部收合起來。此功能除了出現在主選單外,也會出現在組件列表的滑鼠右鍵選單中。

Red Gate's .NET Reflector :: Reorder Assemblies

5. Bookmarks Menu ( 書籤選單 )

書籤功能其實是 Reflector 內建的功能,在選取到你想要的組件、類別或成員後按下 Ctrl + K 即可建立書籤,下次開啟 Reflector 時就可以直接透過書籤跳到那個位置,但沒安裝 PowerCommands for Reflector 之前你必須按下 F2 開啟書籤視窗後才能選取書籤,安裝 PowerCommands for Reflector 後就可以直接透過主選單選取書籤,操作上的確比較方便。

Red Gate's .NET Reflector :: Bookmarks Menu

 

[ 命名空間層級’s 滑鼠右鍵選單區 ]

[ 命名空間層級’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

Create Assembly Binding Redirect ( 建立組件繫結重新導向 )

7. Create Shortcut

當你選取命名空間、組件、類別或類別成員時,按下 [Create Shortcut] 會在你的桌面建立一個快捷項目(Shortcut),下次要開啟 Reflector 時只要點選這個項目就可開啟 Reflector 並自動開啟到當時建立的那個位置。此功能同時也會出現在 [組件層級’s 滑鼠右鍵選單區]、[類別層級’s 滑鼠右鍵選單區] 與 [類別成員層級’s 滑鼠右鍵選單區]。

桌面快捷項目(Shortcut)

 

[ 組件層級’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 滑鼠右鍵選單區]。

Open With External Application ( 以其他外部程式開啟檔案 )

13. Copy Path ( 複製組件路徑 )

此功能讓你複製組件所在的完整路徑檔名所在目錄路徑

 

[ 類別層級’s 滑鼠右鍵選單區 ]

[ 類別層級’s 滑鼠右鍵選單區 ]

14. Enum Viewer ( 列舉檢視器 )

Reflector 預設就可以檢視所有列舉項目(Enum),但列舉項目無法依照字母排序,也無法強制顯示列舉實際的數值,利用 Enum Viewer 讓你可以在主選單的 [View] / [Options] 中可設定列舉顯示的方式:

Red Gate's .NET Reflector :: Enum Viewer 讓你可以在主選單的 [View] / [Options] 中可設定列舉顯示的方式

 Red Gate's .NET Reflector :: Enum Viewer 讓你可以在主選單的 [View] / [Options] 中可設定列舉顯示的方式

15. Bit Flag Converter ( 位元旗標轉換器 )

只要有標上 [Flags] 屬性 (Attribute) 的 列舉型別 (enum) 都可以使用這個功能,其實只是一個簡單的二進位計算機而已。例如 System.Data.CommandBehavior 列舉就是一個標有 [Flags] 的型別,點選 Bit Flag Converter 後就會出現該列舉的所有清單,當你點選完後就會出現你勾選的項目做 Bit Mask 運算後的結果 (十進位)。

Red Gate's .NET Reflector :: Bit Flag Converter ( 位元旗標轉換器 )

 

[ 類別成員層級’s 滑鼠右鍵選單區 ]

[ 類別成員層級’s 滑鼠右鍵選單區 ]

16. Email Code ( 轉寄程式碼 )

此功能可將你選取的類別成員程式碼透過 mailto: 通訊協定開啟預設的本機郵件軟體 (例如: Outlook),並將程式碼填入到郵件內容中,方便你快速轉寄程式碼給其他人。

 

[ 組件資源’s 滑鼠右鍵選單區 ]

Red Gate's .NET Reflector :: Open with Paint ( 以小畫家開啟該圖片 ) Red Gate's .NET Reflector :: Save As RESX ( 將 .resources 資源檔儲存成 *.resx 檔 )

17. Open with Paint ( 以小畫家開啟該圖片 )

當選取的組件資源圖片類型的檔案時就可直接以小畫家開啟該圖片。

18. Save As RESX ( 將 .resources 資源檔儲存成 *.resx 檔 )

當選取的組件資源是 *.resources 格式時,使用此功能就能將該資源儲存成 XML 格式的 *.resx 資源檔。

---

我的天啊,這篇文章花了我整整三個小時撰寫,比我預期的撰寫時間還長,不過一條一條的測試/試用之後也對 Reflector 有了更深一層的認識,算是利用 PowerCommands for Reflector 精通了 Reflector 所有操作技巧吧,收穫頗多。 ^_^

相關連結

留言評論