来自嵌入式资源的名称常量,用于c#中的数据注释

时间:2012-10-24 08:40:38

标签: c# c#-4.0 data-annotations embedded-resource

当我创建像MyResources.resx这样的嵌入式资源文件时,我可以使用生成的属性MyResources.MyLabel1轻松地从代码(或在asp.net视图等中)访问这些值。如果我想将它用作数据注释,我会写这样的东西:

[Display(Name = "MyLabel1", ResourceType = typeof(MyResources))]
public string SomeInput { get; set; }

显然,“MyLabel1”现在是一个硬编码的字符串,在修改资源并更改或删除名称时会导致问题,等等。

我见过人们使用这样的常量:

public const string MyLabel1 = "MyLabel1";

并将数据注释更改为以下内容:

[Display(Name = MyConstants.MyLabel1, ResourceType = typeof(MyResources))]
public string SomeInput { get; set; }

但是你仍然需要维护这个硬编码的字符串。

所以我的问题是:我可以以某种方式生成那些名称常量吗?使用自定义T4模板或自定义资源管理器或已存在的任何东西?因此,更改或删除标签会导致编译错误......

0 个答案:

没有答案