2011-01-31 14 views

答えて

-1

クイックビューには、クラスに存在し、アクセス可能なメソッドとプロパティが表示されるため、この情報を取得するためにリフレクションを使用することが1つの解決策になります。

//はクラスMyClassの METHODINFO [] methodInfos = typeof演算(MyClassの).GetMethods(BindingFlags.Public | BindingFlags.Static)の方法を取得します。

+1

ありがとうございますが、私はクラスのすべてのメソッドを表示するのではなく、クイックビューの情報を取得し、コード要素の上にマウスを移動すると、このコード要素があなたのソリューション。 – rodi

0

私はコード例はありませんが、必要な手順のように聞こえるViewFilter.HandleQuickInfoメソッドについては、次のドキュメントがあります。

基本メソッドは、現在のキャレット位置を得るためViewFilterコンストラクタに渡さIVsTextViewオブジェクトにGetCaretPosメソッドを呼び出します。この位置は、Sourceオブジェクト(ViewFilterコンストラクタ内のCodeWindowManagerオブジェクトから取得)のOnSyncQuickInfo(IVsTextView、Int32、Int32)メソッドに渡されます。 OnSyncQuickInfo(IVsTextView、Int32、Int32)がテキストを返す場合、デバッグがアクティブな場合、このメソッドはGetFullDataTipTextメソッドを呼び出してデバッガから追加情報を取得します。最後に、新しい(または現在の)TextTipDataオブジェクトがツールチップを表示するために使用されます。

出典: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

関連する問題