列出已应用属性的对象属性

时间:2012-03-09 04:00:00

标签: c# .net

我有一个自定义属性应用于类中的某些属性。检索已应用属性的属性列表的最有效方法是什么?您是否必须反映对象中的属性列表,然后查询每个属性以查看属性是否已应用?

public class Reportable : Attribute
{
}

public class Report
{
    [Reportable("WOID")]
    public string ClientWOID { get; set; }

    [Reportable("ClientName")]
    public string ClientName { get; set; }
}

1 个答案:

答案 0 :(得分:3)

你将不得不使用反射(所以非常怀疑):

var props = typeof(Report).GetProperties()
                          .Where(p => p.GetCustomAttributes(typeof(Reportable), false)
                                       .Any());

foreach (var prop in props)
{
    Console.WriteLine(prop.Name);
}