Я использую аннотации данных для проверки адреса электронной почты.C# RegularExpression Конструктор атрибутов, вызываемый один раз
Чтобы показать сообщение об ошибке, когда адрес emailaddress недействителен, я использую RESX-файл с именем ErrorMessages.
Мой код выглядит так:
public class EmailAdressAttribute : RegularExpressionAttribute
{
public EmailAdressAttribute()
: base(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,3}|[0-9]{1,4})(\]?)$")
{
ErrorMessage = ErrorMessages.ValidateEmailAdress;
}
Когда я изменяю язык (текущая культура) моей ASP.NET MVC приложения во время работы приложения, старый язык все еще отображается.
После отладки я обнаружил, что конструктор для этого атрибута вызывается только один раз (когда я использую его в первый раз).
Как атрибут кэшируется? Как я могу показать правильное сообщение об ошибке из файла ресурсов?
Спасибо, решение работает (без использования ключевого слова override). – Jan
Хорошо! Я догадался, что ErrorMessage является свойством базового класса. По-видимому, он принадлежит классу EmailAddressAttribute. –