У меня есть такой атрибут:
public class LocalisationRequiredAttribute : RequiredAttribute
{
public string VirtualPath { get; set; }
/// <summary>
/// Gets or sets the LocalisationKey
/// </summary>
public string LocalizationKey
{
get => ErrorMessage;
set
{
if (string.IsNullOrEmpty(this.VirtualPath))
{
ErrorMessage = value;
}
else
{
ErrorMessage = Setting.GetLocalisation(this.VirtualPath, value);
}
}
}
}
И Модель определяет вот так
public class User
{
public string VirtualPath = "LocalizationFile";
[LocalisationRequired(VirtualPath = this.VirtualPath, "NoUserNameEntered")]
public string UserName { get; set;}
}
При первом вызове сообщения в файле появляется NoUserNameEntered = Пожалуйста, введите имя пользователя.
Тогда это показывает мне правильно.
после этого я изменил сообщение в файле как «NoUserNameEntered = Имя пользователя не было введено».
Но следующий звонок все равно отображается для меня в качестве первого сообщения: Пожалуйста, введите имя пользователя.
Я хочу каждый раз менять локализацию в среде выполнения.
Как мне решить эту проблему?