Ecco la mia classe di prova con le annotazioni di dati:StringLengthAttribute non sembra funzionare
class Test
{
[Required, StringLength(10)]
public string MyProperty { get; set; }
}
Ecco il mio programma di test di console:
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);
}
}
Per qualche ragione, non ottengo un eccezione di validazione quando la lunghezza della stringa è troppo lunga. Ricevo un'eccezione di convalida (come previsto) quando imposto la proprietà su null e la ri-validazione. Qualche idea sul perché la mia annotazione sulla lunghezza della stringa non viene applicata?