В настоящее время я работаю над проектом asp.net mvc 3, где я использую пользовательский атрибут с именем [ColumnHeading]
для украшения свойств, которые я хочу отобразить в сетке.У меня есть базовая модель, у которой есть пара свойств, которые иногда необходимо отображать в сетке дочернего класса.
Пример:
public class BaseClass
{
public String Status { get; set; }
}
public class ChildClass : BaseClass
{
[Display(Name="Property 1")]
[ColumnHeading]
public String Property1 { get; set; }
[Display(Name = "Property 2")]
[ColumnHeading]
public String Property2 { get; set; }
}
Я не знаю, имеет ли этоменя уже спрашивали (поиск около 3 часов), и если это вообще возможно, но можете ли вы добавить атрибут [ColumnHeading]
в свойство базового класса в дочернем классе, например?
public class ChildClass : BaseClass
{
public ChildClass()
{
// Fictional method to add attribute to property
AddAdditionalMetaData(Status, [ColumnHeading]);
}
...
}
Я знаю, что выможет сделать свойство базового класса virtual
или создать модель представления базового и дочернего класса, но проект имеет более 40 моделей, которые наследуются от базового класса, и около 30 дочерних классов должны отображать это свойство базового класса,так что просмотр моделей на самом деле не стоит того, чтобы за одно свойство дополнительно.
Во-вторых, я должен переопределить свойство несколько раз, что заканчивается бесконечным повторением, которое мне не нравится, но если это единственный способ.Я сделаю это.
Буду признателен за любую помощь.