С C# 6, используя ключевое слово nameof(), теперь можно создать безопасный атрибут Display, который использует локализацию. (смотри также DisplayName attribute from Resources?)Создайте собственный атрибут DisplayAttribute, который указывает ResourceType
Результат будет выглядеть примерно так:
[Display(NameRes = Localization.Account.MinPasswordLength), ResourceType = typeof(Localization.Account))]
public int MinPasswordLength { get; set; }
Но, после того, как печатаю это десятки свойств, я получаю чувство должно быть проще. Каждый раз, когда я печатаю одну и ту же информацию дважды (почти).
Мой вопрос: Как создать пользовательский атрибут DisplayName, который передаст ResourceType из информации Name?
Затем код будет выглядеть примерно так:
[Display(NameResource = Localization.Account.MinPasswordLength)]
public int MinPasswordLength { get; set; }
Любая идея, если это возможно? И если да: как?
Если вы проверяете определение 'класса DisplayAttribute' вы заметите, что' sealed' означает, что вы не можете наследовать от него. Один из способов - создать свой пользовательский атрибут DisplayNameAttribute, который будет считывать информацию из файла ресурсов. –
Да, класс запечатан. Это несчастливо, но возможно, это может быть сделано с расширением? – Frank