背景: 特定のメソッドがアンマネージ リソース (ファイル ハンドル) を返す従来のライブラリがあります。このライブラリのコンシューマーは、そのファイル ハンドルを操作し、処理が完了すると破棄します。ライブラリは現在、破棄しても安全かどうかを決定できるのは消費者だけであるため、破棄を外部化しています。
消費者が目的の後でもファイルハンドラーをそのままにしておくシナリオでは、これが発生し、これによりメモリリークが発生します。これを回避するために、決定論的にファイル ハンドルを破棄するコンシューマ コールを標準化する作業を進めています。
質問:必要な標準に準拠していない場合、メソッドから、またはメソッド内でコンパイラ例外をスローすることは可能ですか? 例: コンシューマが実装内でファイル ハンドルを破棄していることを確認し、そうでない場合はコンパイラによって生成された例外をスローするようにしたかったのです。カスタム属性、カスタム fxcope ルールなど、あらゆるアプローチを受け入れます。