1

ロード時に次のようなツール ウィンドウを作成する新しい Visual Studio パッケージを作成しました。

ここに画像の説明を入力

これは、2 次元または 3 次元で形状を描画するキャンバスなどのいくつかのコントロールで構成されています。現在、これらは初期化ステップで機能して、上記のオブジェクトを作成しています。このツールを便利にするために、これらのコントロールでメソッドを呼び出して、描画する他のオブジェクトを渡したいと思います。たとえば、ポイントとラインを含むコードをデバッグしていて、それらをグラフィカルに表示したいと考えています。(おそらくイミディエイト ウィンドウを使用していますか?または同様のものを使用していますか?) GeometryVisualToolWindow.DrawObject(myCircle); を呼び出せるようにしたいと思います。

パッケージ内のパブリック メソッドにアクセスして引数を渡すにはどうすればよいですか?

デバッガー ビジュアライザーは 1 つのオブジェクトのみを表示するシーンからオブジェクトを選択的に追加および削除できるようにしたいので、デバッガー ビジュアライザーは使用したくありません。(例: 2 つの線が交差しているかどうかを確認したいなど)


アップデート

DTE.Debugger.GetExpression問題を解決するために使用しようとしましたが、適切な参照を追加した後、次のようになります。

ここに画像の説明を入力

4

1 に答える 1

0

Visual Studio のデバッグ セッションで任意のコードを実行する方法について説明します。

自動化モデルを参照してください: http://i.msdn.microsoft.com/dynimg/IC75297.gif

DTE.Debuggerのインスタンスにアクセスできます。これについては、http: //msdn.microsoft.com/en-us/library/aa291845 (v=vs.71).aspx (Visual Studio Debugger Object Model) で説明されています。

次に、次を選択できます。

1) VS debugger( ExecuteStatement) で実際のステートメントを実行します。つまり、すべてのアセンブリを特定のデバッガー セッションにロードする必要があります。読み込まれたアセンブリは、ユーザーが呼び出すことができる静的関数を追加する必要があります。などGeometryVisualToolWindow.DrawObject(myCircle);。メソッドは VSPackage と通信する必要があります。

また

2) VSPackage から GetExpression("myVariable.SerializeToBase64()") を使用すると、出来上がりのインスタンスがシリアル化されmyVariableました。もちろん、最初にそのような機能を注入する必要があります。

http://msdn.microsoft.com/en-us/library/aa291625(v=vs.71).aspx

于 2014-10-07T17:50:52.180 に答える