を動作していないように見えるデータの注釈と私のテストクラスである:ここでStringLengthAttributeはここ
class Test
{
[Required, StringLength(10)]
public string MyProperty { get; set; }
}
は私のコンソールのテストプログラムです:
class Program
{
static void Main(string[] args)
{
var test = new Test {
MyProperty = "this is way more than 10 characters and should fail."
};
var context = new ValidationContext(test, null, null);
// No exception here! (why not?)
Validator.ValidateObject(test, context);
test.MyProperty = null;
// Exception here, as expected
Validator.ValidateObject(test, context);
}
}
が何らかの理由で、私は得ることはありません文字列の長さが長すぎると、検証例外が発生します。プロパティをnullに設定して再検証すると、(期待どおりの)検証例外が発生します。私の文字列の長さの注釈が強制されていない理由は何ですか?