6

通常、私がこれを持っていた場合:

public string Foo(string text)
{
    return text.Substring(3);
}

CA1062: Validate arguments of public methods私はコード分析から得たでしょう。コードを次のように変更することで修正されます。

public string Foo(string text)
{
    if (text == null)
        throw new ArgumentNullException("text");
    else if (string.IsNullEmptyOrWhiteSpace(text)
        throw new ArgumentException("May not be empty or white space", "text")
    else if (text.Length < 3)
        throw new ArgumentException("Must be at least 3 characters long", "text");
    return text.Substring(3);
}

しかし今、この検証を行う別の手段を使用したいと思います。

public string Foo(string text)
{
    Validator.WithArgument(text, "text").NotNullEmptyOrWhitespace().OfMinLength(3);
    return text.Substring(3);
}

メソッドは引数を検証するため、コード分析規則は満たされますが、それでもCA1062警告が表示されます。毎回手動で抑制したり、特定のコード分析ルールをオフにしたりせずに、このようなケースのコード分析ルールを抑制する方法はありますか?

4

1 に答える 1

2

ValidatedNotNullAttributeパラメーターがヘルパー メソッドで検証されることを示すために、named 属性を使用できます。ただし、間違ったメソッド(自分のメソッドではなく自分のメソッド)のパラメーターに追加する必要があるため、流暢な検証 API には必ずしも最適な選択ではありません。WithArgumentNotNullEmptyOrWhitespace

于 2013-02-25T12:56:20.210 に答える