Here is my Test class with data annotations:
class Test
{
[Required, StringLength(10)]
public string MyProperty { get; set; }
}
Here is my console test program:
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);
}
}
For some reason, I do not get a validation exception when the string length is too long. I do get a validation exception (as expected) when I set the property to null and re-validate. Any ideas why my string length annotation is not being enforced?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…