2010-05-09 300 views
6
[MyAttribute()] 
public string Name { get; set; } 

MyAttribute我需要知道關聯屬性的名稱,這有可能嗎?.NET:獲取屬性名稱屬性

編輯:

我需要在文本格式使用它。

+0

你能詳細說明爲什麼你需要它,你會用它來做什麼? – 2010-05-09 11:07:54

+0

你需要說明 – 2010-05-09 11:12:33

回答

8

不,這是不可能的。通常你會使用reflection to read attributes應用於給定的屬性,所以你已經知道屬性。示例:

var properties = typeof(SomeType).GetProperties(); 
foreach (var property in properties) 
{ 
    var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); 
    if (attributes.Count > 0) 
    { 
     // look at property.Name here 
    } 
} 
+0

嗯,可能是我從對立端看問題比我應該。 – Feryt 2010-05-09 11:17:07

+0

是的,你從一個類型開始,然後獲取屬性並最終讀取應用於給定屬性的自定義屬性。 – 2010-05-09 11:19:10

0

您可以使用PostSharp方面來完成這項工作。我有一個類似的question回來,這幾乎是一回事。您可以在答案中看到關於您可能遇到的一些含義的更多信息的評論。