Tengo un tipo, t
, y me gustaría obtener una lista de las propiedades públicas que tienen el atributo MyAttribute
. El atributo está marcado con AllowMultiple = false
, así:¿Cómo obtener una lista de propiedades con un atributo determinado?
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
Actualmente lo que tengo es esto, pero estoy pensando que hay una mejor manera:
foreach (PropertyInfo prop in t.GetProperties())
{
object[] attributes = prop.GetCustomAttributes(typeof(MyAttribute), true);
if (attributes.Length == 1)
{
//Property with my custom attribute
}
}
¿Cómo puedo mejorar esto? Mis disculpas si esto es un duplicado, hay un montón de hilos de reflexión por ahí ... parece que es un tema bastante candente.
Nop. Necesita un PropertyInfo antes de poder averiguar si la propiedad tiene un atributo. –