使用C#6,使用nameof()关键字,现在可以创建一个使用本地化的类型安全Display属性。 (另见DisplayName attribute from Resources?)
结果将是这样的:
[Display(NameRes = Localization.Account.MinPasswordLength), ResourceType = typeof(Localization.Account))]
public int MinPasswordLength { get; set; }
但是,在输入了几十个属性之后,我觉得必须有一个更简单的方法。每次我输入相同的信息两次(差不多)。
我的问题是: 如何创建自定义DisplayName属性以从名称信息中推断出ResourceType?
然后代码看起来像这样:
[Display(NameResource = Localization.Account.MinPasswordLength)]
public int MinPasswordLength { get; set; }
知道这是否可行?如果是这样的话:怎么样?
答案 0 :(得分:0)
一种方法是定义另一个定义的属性采用资源类型。
您将此属性放入类定义中。 在资源搜索期间,您将检查类型主机以确定资源类型。
示例:
[DisplayResourceHost(typeof(Localization.Account))]
public class ViewModel
{
[Display(NameResource = Localization.Account.MinPasswordLength)]
public int MinPasswordLength { get; set; }
}