2012-03-09 88 views
2

我有一個自定義屬性應用於類中的某些屬性。檢索具有應用屬性的屬性列表的最有效方法是什麼?你是否必須反思對象中的屬性列表,然後查詢每個屬性是否被應用?列出具有應用屬性的對象屬性

public class Reportable : Attribute 
{ 
} 

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

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

回答

3

你將不得不使用反射(所以你懷疑差不多):

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

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

男孩真快。當我的互聯網連接死亡,我回來了,我看到一個答案接受和一切! – gideon 2012-03-09 04:31:32