我们有一些归属良好的数据库代码,如下所示:
[Display(Name = "Phone Number")]
public string Phone { get; set; }
由于它非常通用,我们想再次使用它,但在属性的Name部分使用不同的字符串。因为它是一个属性,所以它似乎想要使用const,所以我们尝试了:
const string AddressType = "Student ";
[Display(Name = AddressType + "Phone Number")]
public string Phone { get; set; }
这似乎没问题,除了有一个const字符串意味着我们不能在任何基类中覆盖它,从而删除了我们原本打算添加的功能,并暴露了我的问题:
有没有办法在属性中使用某种变量,以便我们可以继承并保留属性装饰?
答案 0 :(得分:20)
编译时编译器必须知道属性中的所有内容。变量本身就是变量(!)所以不能在属性中使用。
如果你可以使用代码生成工具,你就可以动态地为每个派生类注入不同的(常量)值。
答案 1 :(得分:3)
你可以跳过箍并使用一个额外的属性来定义变量部分,但与它产生的相比,这将是相当多的工作。没有简单的方法来完成你所追求的目标。