当我创建一个嵌入式资源文件时,例如MyResources.resx
,我可以使用生成的属性从代码(或在 asp.net 视图等中)轻松访问这些值MyResources.MyLabel1
。如果我想将它用作数据注释,我会写如下内容:
[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 模板或自定义资源管理器或任何已经存在的东西?因此更改或删除标签会导致编译错误......