2010-08-02 237 views
7

我有這樣的代碼:如何獲得屬性值

[MyAttribute(CustomAttribute="Value")] 
class MyClass 
{ 
    // some code 
} 


Main() 
{ 
    MyClass a = new MyClass(); 
} 

如何獲得CustomAttribute的值,例如一個?

回答

3

線沿線的:

MyAttribute [] myAttributes 
    = (MyAttribute [])a.GetType().GetCustomAttributes(typeof(MyAttribute),true); 

不能明白你的意思「而無需使用的foreach」,除了GetCustomAttributes總是返回他們的數組(考慮具有多個屬性) 。如果你知道只能有一個,那就用第一個。

MyAttribute theAttrib = myAttributes[0]; 
Console.WriteLine(theAttrib.CustomAttribute); 
+0

「不能明白你的意思‘而無需使用的foreach’」 - > 我發現使用的foreach讀取所有屬性值 – Dusan 2010-08-02 14:11:57

+0

一些不好的例子是,但壞的例子是 - 例子 - 你應該接受他們所提供的知識,並且如何使用它。 – Jamiec 2010-08-02 14:36:57

1
var attribs = (MyAttributeAttribute[]) typeof(MyClass).GetCustomAttributes(
    typeof(MyAttributeAttribute), 
    true); 

Console.WriteLine(attribs[0].CustomAttribute); // prints 'Value'