Локализация DisplayNameAttributeC#

Место общения программистов C#
Anonymous
Локализация DisplayNameAttribute

Сообщение Anonymous »

Я ищу способ локализовать имена свойств, отображаемые в PropertyGrid. Имя свойства можно «переопределить» с помощью атрибута DisplayNameAttribute. К сожалению, атрибуты не могут иметь неконстантные выражения. Поэтому я не могу использовать строго типизированные ресурсы, такие как:

Код: Выделить всё

class Foo
{
[DisplayAttribute(Resources.MyPropertyNameLocalized)]  // do not compile
string MyProperty {get; set;}
}
Я осмотрелся и нашел предложение наследовать от DisplayNameAttribute, чтобы иметь возможность использовать ресурс. В итоге я бы получил такой код:

Код: Выделить всё

class Foo
{
[MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed
string MyProperty {get; set;}
}
Однако я теряю преимущества строго типизированных ресурсов, что определенно нехорошо. Затем я наткнулся на DisplayNameResourceAttribute, возможно, это то, что я ищу. Но оно должно находиться в пространстве имен Microsoft.VisualStudio.Modeling.Design, и я не могу найти, какую ссылку я должен добавить для этого пространства имен.

Кто-нибудь знает, есть ли такое более простой способ добиться хорошей локализации DisplayName? или есть ли способ использовать то, что Microsoft, похоже, использует для Visual Studio?

Подробнее здесь: https://stackoverflow.com/questions/356 ... eattribute

Вернуться в «C#»