У нас есть некоторый Хорошо приписанный код DB, как так:
[Display(Name = "Phone Number")]
public string Phone { get; set; }
Так как это довольно универсально, мы хотели бы использовать его снова, но с другой строкой в Заглавной роли атрибута. Так как это - атрибут, это, кажется, хочет вещи быть константой, таким образом, мы попробовали:
const string AddressType = "Student ";
[Display(Name = AddressType + "Phone Number")]
public string Phone { get; set; }
Это, кажется, работает хорошо, за исключением того, что наличие константы представляет средства в виде строки, мы не можем перезаписать его ни в каких базовых классах, таким образом, удалив функциональность, которую мы первоначально намеревались добавить и выставляли мой вопрос:
Существует ли способ использовать своего рода переменную в атрибуте так, чтобы мы могли наследовать и сохранить художественные оформления атрибута?
Все внутри атрибута должно быть известно компилятору во время компиляции. Переменные по своей сути являются переменными (!), Поэтому их нельзя использовать в атрибутах.
Если вы можете использовать инструмент генерации кода, вы сможете динамически вводить разные (постоянные) значения в каждый производный класс.
Вы можете перепрыгивать через обручи и использовать дополнительный атрибут для определения переменной части, но это будет довольно трудоемко по сравнению с тем, что она будет производить. Нет простого способа добиться того, что вам нужно.