9

Resharper 7.1 の試用版をダウンロードしました。私の目標は、C# コードベース内のすべての catch ブロックでカスタム ロガーを使用する必要があるというルールを適用することです。例;

try{
    // Any amount of code
}
catch(Exception e){

}

ただし、違法である必要があります。

try{
    // Any amount of code
}
catch(Exception e){
    Logger.LogException(e.Message, e);
}

完全に受け入れられます。この目的のために、次のパターンを検出してリファクタリングするように設定しました。

検索パターン:

try{
    $anystatements$
}
catch($exceptiontype$ $exceptionarg$){
    $anycatchstatements$
}

置換パターン:

try{
    $anystatements$
}
catch($exceptiontype$ $exceptionarg$){
    Logger.LogException($exceptionarg$.Message, $exceptionarg$)
    $anycatchstatements$
}

Resharper は問題なく匂いを検出していますが、Logging 用に追加された行が$anycatchstatement$プレースホルダーによって照合されているため、置換パターン自体を匂いとして扱っています。

「カスタムロガーへの呼び出しではないキャッチブロック内の任意の数のステートメントに一致し、単にロガーへの呼び出しを追加する」と説明するプレースホルダーを定義するにはどうすればよいですか?

4

1 に答える 1