Я пытаюсь написать строго типизированный локализуемый DisplayNameAttribute, но не могу его даже скомпилировать.То, что я хотел бы сделать с моими свойствами viewmodel, это что-то вроде
[LocalizedDisplayName<HomeResources>(r => r.WelcomeMessage)]
, что в основном делает то же самое, что и
[DisplayName("Welcome to my site!")]
, за исключением того, что сообщение локализовано.Однако я не могу заставить ни общий конструктор работать (как вы предоставляете аргументы типа конструктору?), Ни выбирать, какую строку использовать.Текущий конструктор выглядит следующим образом:
public class LocalizedDisplayNameAttribute<TResource> : DisplayNameAttribute
{
public LocalizedDisplayName(Expression<Func<TResource, string>> resource)
{ // ...
, но компилятор жалуется, что входной аргумент не является константой времени компиляции, поэтому, очевидно, этот способ неверен.
Есть лиспособ получить строго типизированный, локализованный атрибут для отображаемого имени?Уже есть один?