Aquí está mi clase de prueba con anotaciones de datos:StringLengthAttribute no parece estar funcionando
class Test
{
[Required, StringLength(10)]
public string MyProperty { get; set; }
}
Aquí es mi programa de pruebas de la consola:
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);
}
}
Por alguna razón, no consigo una excepción de validación cuando la longitud de la cadena es demasiado larga. Obtengo una excepción de validación (como se esperaba) cuando establezco la propiedad en nulo y valide nuevamente. ¿Alguna idea de por qué mi anotación de longitud de cadena no se está aplicando?