¿Cómo obtener una lista de propiedades con un atributo dado?


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í:

[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 candente.


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52