У меня есть настраиваемый атрибут, который я хочу применить к базовому абстрактному классу, чтобы я мог пропускать элементы, которые не нужно просматривать пользователю при отображении элемента в HTML , Кажется, что свойства, переопределяющие базовый класс, не наследуют атрибуты.Наследование пользовательских атрибутов по абстрактным свойствам
Заменяет ли базовые свойства (абстрактные или виртуальные) атрибуты, отнесенные к исходному свойству?
От класса Атрибут Defination
[AttributeUsage(AttributeTargets.Property,
Inherited = true,
AllowMultiple = false)]
public class NoHtmlOutput : Attribute
{
}
от абстрактного класса Defination
[NoHtmlOutput]
public abstract Guid UniqueID { get; set; }
из бетона класса Defination
public override Guid UniqueID{ get{ return MasterId;} set{MasterId = value;}}
Из класса проверки атрибута
Type t = o.GetType();
foreach (PropertyInfo pi in t.GetProperties())
{
if (pi.GetCustomAttributes(typeof(NoHtmlOutput), true).Length == 1)
continue;
// processing logic goes here
}
Searching цепь, предоставление параметра наследования pi.GetCustomAttributes (typeof (NoHtmlOutp ut), true) –
Прочтите замечания. PropertyInfo.GetCustomAttributes() * игнорирует * параметр inherit. – womp
Ничего ... Microsoft должна была поместить его в наименьшее возможное лицо –