在C#中使用Attributes中的变量

我们有一些归属良好的数据库代码,如下所示:

[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字符串意味着我们不能在任何基类中覆盖它,从而删除了我们原本打算添加的function,并暴露了我的问题:

有没有办法在属性中使用某种变量,以便我们可以inheritance并保留属性装饰?

编译时编译器必须知道属性中的所有内容。 变量本质上是可变的(!),因此不能在属性中使用。

如果可以使用代码生成工具,则可以在每个派生类中动态注入不同的(常量)值。

你可以跳过箍并使用一个额外的属性来定义变量部分,但与它产生的相比,这将是相当多的工作。 没有简单的方法来完成你所追求的目标。