內右鍵點擊組件的名字,我想編寫一個Visual Studio擴展捕獲當用戶點擊右側的代碼的一部分捕獲方法,類,從Visual Studio
檢測如果以下信息用戶點擊了一個方法,如果是獲得方法名
檢索方法的類的全名,即(命名空間+類名)
檢索包含項目的輸出類型,即,類庫等
完整的程序集名稱,即路徑+名
我使用EnvDTE
對象和IVsTextManager GetActiveView()
相結合的方法,但我無法讓所有的我所需要的信息。我見過測試驅動在Visual Studio中通過右鍵單擊運行單元測試時執行此操作,所以我希望我可以實現同樣的效果。
我已經能夠提取的唯一方法是迄今爲止的方法名稱,但它需要在IDE中選擇方法名稱。 EnvDTE
很適合返回項目名稱,但這對我來說並不是什麼好事。
var methodName = (EnvDTE.DTE)this.GetService(typeof(EnvDTE.DTE)).ActiveDocument.Object("").Selection.Text;
在此之後獲得的類名稱/命名空間中所有我是被選擇的,即方法名行的參考。從這裏我讀取活動窗口中的選定文件,並從方法名稱向後讀取,以嘗試查找最近出現的類關鍵字和名稱空間。這是非常不雅和笨重。