サードパーティのアセンブリによって公開されている列挙型を使用しています。
public enum APIEnum
{
Val1,
Val2
}
。ただし、これらの値の多くは、私のアプリケーションで誤った動作を引き起こします。これらの「悪い」列挙値の1つがコードで使用されている場合、コンパイラの警告を生成したいと思います。
APIEnum usedVal = APIEnum.Val2;
Compiler Warning: APIEnum.Val2 causes incorrect behavior.
私の最終的な目標は、悪い値が使用された場合に意識的に#pragmaされなければならない警告を生成することです(全体のケースの2%)。それ以外の場合は、警告が発生します。警告はエラーとして表示されるため、修正されるか#pragmaされるまでコンパイルが中断されます。
この問題を解決するためにObsolete属性を使用することについて、こことここでスレッドを見てきましたが、値が実際には廃止されていないため、Obsoleteが混乱を引き起こすのではないかと心配しています。
問題を解決するためにResharperコード分析プラグインを使用する可能性を検討しましたが、それは間違いなくオプションです。私はResharperや、Resharperを介して問題を最もよく解決する方法の専門家ではありません。