Intel Inspector で複雑な .net/COM アプリケーションをテストしています (ネイティブ メモリ リーク)。.net コードのかなりの場所で、COM オブジェクトへの参照を静的フィールドにキャッシュしています。明らかに、インスペクターはそれらにリークとしてフラグを立てています。いくつかのケースでは、抑制を追加するだけで十分ですが、フラグが設定された (メイン COM オブジェクトの一部として作成された) オブジェクトの数が制御不能 (数百) になることがあり、それらを抑制すると、実際のリークである同様のパターンが隠される場合があります。簡単に言うと、プロセスが終了する直前に、appdomain にロードされたすべてのアセンブリのすべてのクラスを反復処理し、COM オブジェクトを参照している静的フィールドを null に設定しています。COM オブジェクトを参照するすべての静的フィールドを有効なキャッシュとしてまだ受け入れられていなくても (そして実際のリークである可能性があります) 印刷できれば、今後の使用に最適です。
ただし、タイプが使用されていない場合は、(null かどうかを確認するために) getField を呼び出しているときに静的コンストラクターが実行され、さらに COM オブジェクトが作成される可能性があります。タイプが現在の AppDomain で使用されたことがあるかどうかを検出する方法はありますか?