Мы управляем несколькими клиентскими веб-сайтами ASP.NET MVC, все из которых используют аннотацию данных, подобную приведенной ниже, для проверки адресов электронной почты клиентов (здесь я не включил регулярное выражение для удобства чтения):
[Required(ErrorMessage="Email is required")]
[RegularExpression(@"MYREGEX", ErrorMessage = "Email address is not valid")]
public string Email { get; set; }
То, что я хотел бы сделать, это централизовать это регулярное выражение, чтобы, если мы внесем в него изменения, все сайты сразу его подберут, и нам не придется вручную изменять его в каждом.
Проблема в том, что аргумент regex аннотации данных должен быть константой, поэтому я не могу присвоить значение, которое я извлек из файла конфигурации или базы данных во время выполнения (что было моей первой мыслью).
Может ли кто-нибудь помочь мне с умным решением этого - или с ошибкой - альтернативным подходом, который будет работать для достижения той же цели? Или это просто требует от нас написания специального пользовательского атрибута проверки, который будет принимать непостоянные значения?