我正在寻找一种在可本地化的类级别设置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')]
是适用的,但是不可本地化。
我一直在搜索,但是我发现的所有帖子仅在方法/属性级别解决该问题。
答案 0 :(得分:0)
一种可能的方法是派生具有不同参数的新属性类。
使用以下定义,您可以提供资源名称作为参数。
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
{
..
}
除了参数现在是资源字符串的名称。