Gestionamos varios sitios web del cliente ASP.NET MVC, que todos utilizan una anotación de datos como el siguiente para validar las direcciones de correo electrónico del cliente (no he incluido aquí la expresión regular, para facilitar la lectura):¿Cómo puedo establecer un argumento de expresión regular de la anotación de datos de RegularExpression en el tiempo de ejecución?
[Required(ErrorMessage="Email is required")]
[RegularExpression(@"MYREGEX", ErrorMessage = "Email address is not valid")]
public string Email { get; set; }
Lo que lo que queremos hacer es centralizar esta expresión regular, de modo que si hacemos un cambio en ella, todos los sitios la recogen inmediatamente y no tenemos que cambiarla manualmente en cada uno.
El problema es que el argumento regex de la anotación de datos debe ser una constante, por lo que no puedo asignar un valor que he recuperado de un archivo de configuración o base de datos en tiempo de ejecución (que fue mi primera idea).
¿Alguien me puede ayudar con una solución inteligente para esto o, en su defecto, un enfoque alternativo que funcione para lograr el mismo objetivo? ¿O esto solo requiere que escribamos un atributo de validación personalizado especialista que aceptará valores no constantes?
[correo electrónico regular la expresión MVC C#] (http://lesson8.blogspot.com/2013/03/email-regular-expression-mvc-c.html) – Sender
'[EmailAddress (ErrorMessage = "No es una dirección de correo electrónico válida")] 'ya está incluida en' System.ComponentModel.DataAnnotations.dll' –