Локализуемый атрибут DisplayName для уровня класса - PullRequest
0 голосов
/ 26 февраля 2019

Я ищу способ установить атрибут displayname на уровне класса, который можно локализовать.Мне удалось исправить это для уровня метода / свойства, используя атрибут display:

       [Display(
            ResourceType = typeof(HardwareLocalization),
            Name = nameof(HardwareLocalization.DoorAccessConfiguration_RequireActiveMembership_Name),
            Description = nameof(HardwareLocalization.DoorAccessConfiguration_RequireActiveMembership_Description)
        )]
        public bool RequireActiveMembership { get; set; }

Но [Display(Name = 'x')] неприменимо на уровне класса, только [DisplayName('name')], но это не локализуемо.

Я искал вокруг, но все сообщения, которые я нахожу, только решают проблему на уровне метода / свойства.

1 Ответ

0 голосов
/ 27 февраля 2019

Один из возможных способов - получить новый класс атрибутов с другим параметром.

Используя следующее определение, вы можете указать имя ресурса в качестве параметра.

internal class ma_DisplayNameAttribute : System.ComponentModel.DisplayNameAttribute
{
  public ma_DisplayNameAttribute( string ResourceName )
    : base ( AttributeTest.Properties.Resources.ResourceManager.GetString(ResourceName) )
  {
  }
}

Проверка атрибутаэто имя моего компонента.Вам придется заменить его базовым пространством имен в вашем компоненте.

Вы можете использовать его так же, как исходный атрибут DisplayName

[ma_DisplayName("Banana")]
class Class2
{
  ..
}

, за исключением того, что параметр теперь является именем строки ресурса.

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