Tengo un atributo personalizado que quiero aplicar a mi base de clase abstracta para que pueda saltar elementos que no deben ser vistos por el usuario cuando se muestra el elemento en HTML . Parece que las propiedades que reemplazan a la clase base no heredan los atributos.Herencia de atributos personalizados en propiedades abstractas
¿El propiedades básicas primordiales (abstracta o virtual) soplar atributos colocados en la propiedad original?
De Defination clase Atributo
[AttributeUsage(AttributeTargets.Property,
Inherited = true,
AllowMultiple = false)]
public class NoHtmlOutput : Attribute
{
}
De Resumen Clase Defination
[NoHtmlOutput]
public abstract Guid UniqueID { get; set; }
De Defination clase concreta
public override Guid UniqueID{ get{ return MasterId;} set{MasterId = value;}}
de la clase comprobación de atributo
Type t = o.GetType();
foreach (PropertyInfo pi in t.GetProperties())
{
if (pi.GetCustomAttributes(typeof(NoHtmlOutput), true).Length == 1)
continue;
// processing logic goes here
}
Buscando en la cadena de proporcionando el parámetro heredado pi.GetCustomAttributes (typeof (NoHtmlOutp) ut), verdadero) –
Lea los comentarios. PropertyInfo.GetCustomAttributes() * ignora * el parámetro heredado. – womp
No importa ... Microsoft tuvo que ponerlo en la cara de tipo más pequeña posible –