0

作成中のデバッガー ビジュアライザーの呼び出し間でオブジェクトを永続化する必要がありますが、IDE セッション間で永続化する必要はありません。IDE の EnvDTE.Globals オブジェクトは、このオブジェクトを格納する明白な場所のように思えました。

格納されているオブジェクトの型 (整数のリストなど) が既に IDE に読み込まれている場合、この型の変数をグローバル オブジェクトに正常に保存し、デバッガ ビジュアライザへの後続の呼び出しでそれを取得できます。

ただし、保存される変数の型が、デバッガー ビジュアライザー自体を含むアセンブリ、またはビジュアライザーによって参照されるローカル アセンブリで宣言されている場合、すべてがひどくうまくいきません。オブジェクトをグローバルに保存し、ビジュアライザーへの同じ呼び出し内で取得できます。ただし、後続の呼び出しでアクセスしようとすると、値が存在することを正常にテストできますが、アクセスしようとすると IDE が失敗します。

ビジュアライザーが使用されるたびに、デバッガー ビジュアライザーのアセンブリがリロードされているため、格納されているオブジェクトの型が期待する型と一致していないと思われます。まあ、それは私の推測です。説明/回避策をいただければ幸いです。

4

2 に答える 2

1

オブジェクトをシリアライズ/デシリアライズして、オブジェクトの代わりにシリアライズ結果を保存しようとしましたか?

于 2009-10-15T17:48:05.827 に答える
0

WCF コールバック オブジェクトを維持し、デバッガ拡張機能がアクティブでない場合でもリモート クライアントがコールバックできるようにしたいと考えていました。したがって、オブジェクトのシリアル化されたバージョンを保存しても、この特定のインスタンスでは役に立ちません。

于 2009-10-15T20:17:23.810 に答える