1

# if、#elif、#else、#endifなどの条件付きコンパイルプリプロセッサディレクティブを評価できるカスタムC#StyleCopルールを作成することは可能ですか?

条件付きコンパイルシンボルを使用する必要がある環境で開発しているので、その上にカスタムコーディング規約を追加したいと思います。

これはCsDocument.WalkDocument--メソッドで可能ですか、それとも他のものを利用する必要がありますか?

(FxCopは、既にコンパイルされたバイナリで機能するため、ここでは機能しません)。

4

1 に答える 1

3

はい、可能ですが、CsDocument.WalkDocumentプリプロセッサディレクティブはトークンとしてのみ表されるため、オーバーロードは役に立ちません。対応する要素、ステートメント、または式はありません。

条件付きコンパイルディレクティブのルールを作成するには、CsDocument.Tokensコレクションを調べる必要があります。例えば:

foreach (var directive in document.Tokens
                             .Where(t => t.CsTokenClass == CsTokenClass.ConditionalCompilationDirective)
                             .Cast<ConditionalCompilationDirective>())
{
    // ...
}
于 2012-07-12T12:13:09.143 に答える