Проверка пользовательских DataAnnotations на основе файла ресурсов (.resx) - PullRequest
0 голосов
/ 12 октября 2018

Я создал пользовательскую проверку, которая будет ограничивать пользователя для ввода максимального списка элементов (например, ключевых слов).

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class MaxListItemsAttribute : ValidationAttribute, IClientValidatable
{
    private readonly int _max;

    public MaxListItemsAttribute(int max)
    {
        _max = max;
    }
}

Сложность здесь заключается в том, что для другой страны есть разные максимальные значения, которые пользователь может вводить.Например: в Великобритании пользователю разрешено вводить 10 позиций;в АС пользователю разрешено вводить 100 позиций;и т. д.

Я думаю использовать ресурс (.resx) для динамического изменения значения max в зависимости от культуры, установленной в приложении.Если я решу установить британскую культуру, значение max должно быть равно 10 и аналогично другим странам.

[MaxListItems(Metadata.MaxListItems_MaxCount)]
public List<string> Keywords { get; set; }

Metadata - это ресурс (.resx), куда я извлек определенное максимальное число дляатрибут MaxListItems.

Я видел, как это используется в атрибуте Display, но можно ли это реализовать, если у вас есть собственный атрибут?

...