当我创建像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模板或自定义资源管理器或已存在的任何东西?因此,更改或删除标签会导致编译错误......