Атрибут действительно получает правильное сообщение при следующем вызове (привязка модели - проверка) - PullRequest
0 голосов
/ 14 мая 2019

У меня есть такой атрибут:

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 = Имя пользователя не было введено».

Но следующий звонок все равно отображается для меня в качестве первого сообщения: Пожалуйста, введите имя пользователя.

Я хочу каждый раз менять локализацию в среде выполнения.

Как мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...