2011-01-31 80 views

回答

-1

快速瀏覽顯示存在和可在類上訪問的方法和屬性,因此一種解決方案是使用反射來獲取此信息。

//獲取所述方法的類MyClass的 MethodInfo的[] methodInfos = typeof運算(MyClass的).GetMethods(BindingFlags.Public | BindingFlags.Static);

+1

感謝但我想要的不是列出類的所有方法,但獲取quickview的信息,當我將鼠標移動到代碼元素上時,我不知道此代碼元素存在於哪個類中以使用您的解決方案。 – rodi 2011-02-01 02:59:29

0

我沒有一個代碼示例,但發現了ViewFilter.HandleQuickInfo方法的以下文檔,這聽起來像您需要執行的步驟。

基部方法調用傳遞給ViewFilter構造以獲得當前插入位置的IVsTextView對象上的GetCaretPos方法。然後將此位置傳遞給Source對象(從ViewFilter構造函數中的CodeWindowManager對象獲取)中的OnSyncQuickInfo(IVsTextView,Int32,Int32)方法。如果OnSyncQuickInfo(IVsTextView,Int32,Int32)返回任何文本,則此方法接下來調用GetFullDataTipText方法以在調試活動時從調試器獲取任何其他信息。最後,使用新的(或當前的)對象來顯示工具提示。

來源:ViewFilter.HandleQuickInfo

編輯:

可以使用IVsTextManager檢索當前IVsTextView

var textManager = Resolve.Service<IVsTextManager, SVsTextManager>(); 

IVsTextView textView; 
ErrorHandler.ThrowOnFailure(textManager.GetActiveView(fMustHaveFocus: 1, pBuffer: null, ppView: out textView)); 

Int32 caretRow, caretCol; 
ErrorHandler.ThrowOnFailure(textView.GetCaretPos(out caretRow, out caretCol)); 

不過,我被困在那裏,而無法做任何有用與IVsTextView.UpdateTipWindow,它從來沒有要求我通過虛擬對象上的任何東西,所以我相信它需要從語言服務已經可見IVsTipWindow。

+0

感謝您的回答,但不幸的是我已經測試過這個解決方案,但沒有成功。 – rodi 2011-02-01 20:09:17

相關問題