0

適切に破棄されていないすべてのコードを自動的に見つける必要があります。私のタイプ N が using ステートメント内で使用されていることをリフレクションを介して確認することは可能ですか (Dispose が呼び出されます)?

4

1 に答える 1

4

いいえ。最も近いのは、ファイナライザーを追加することです-おそらく条件付きで、デバッグビルドにのみ含まれるように-破棄されたかどうかを確認し、そうでない場合は問題をログに記録します. (この場合、正しいコードを非難するために、構築時にスタック トレースを保持する必要があるでしょう。)

ファイナライザーを追加すると、ガベージが長く残ることに注意してください-Dispose呼び出しではファイナライズを抑制することができるため、正しいコードには、構築時にスタックトレースを生成することを除いて、重大なペナルティはありません...

これで、実行時に何かをしたいと仮定しただけです。さまざまな静的分析ツール ( Visual Studio に組み込まれているコード分析など)があり、すべてを適切に破棄していないように見える場合、ビルド時に通知されます。

于 2013-10-21T13:01:46.823 に答える