2012-09-07 64 views
1

我想創建自己的自動「解決」功能。在VS中,當您右鍵單擊並選擇「解決」時,它會給您提供選項,並在選擇之後,爲該文件添加必要的「使用...」語句。DIY「解決」功能

我想借這兩個步驟進一步:

  1. 我要分析文本時有變化,以尋找可能需要的任何引用,而不是強調並等待用戶「解決」。
  2. 我不僅想提供一個「using ...」語句,而且還想知道在項目中引用哪個DLL。在VS中,如果你已經有了正確的庫,你只能得到「Resolve」。

現在,爲了保持向下的複雜性:

  1. 我只在乎內置與C#/ VS/.NET一起.NET庫。

我知道有幾種情況下即使.NET類重疊(例如System.Threading和System.Windows.Forms中的Timer),但它們是例外。

所以,我的問題是,是否有一些列表/映射我可以抓住將所有.NET類映射到「using ...」語句和庫引用(包括標準文件路徑)?或者,有什麼方法可以讓我自動生成這樣的列表?

回答

2

您可以查找提供此功能的第三方產品。市場上有一款優秀的產品ReSharper,它可以從源代碼文件(而不是編譯代碼)中構建符號數據庫,而且這些文件也是快速和優化的。它允許您解析該符號並添加對組件的引用,前提是它已經從解決方案中的其他項目中知道該程序集。我相信它不是唯一的產品。

從系統程序集構建類的列表並不難。只需從標準安裝中製作系統程序集列表,加載它們中的每一個並創建公共類列表。看看System.Reflection.Assembly方法,如Load()和GetTypes()

+1

ReSharper是150-350美元左右(各種許可證)。值得每一分錢。但它不是「DIY」。 – 2012-09-07 03:29:44

+0

好吧,是的,有缺點)實際上它現在更便宜。 – aiodintsov

1

我想你可以列出GAC中的DLL,並使用反射列出每個DLL的所有公共類。

這樣您就可以創建一個映射,並找出要添加哪個引用以及要添加哪個using語句。