2

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

4

0 回答 0