2010-08-02 25 views
7

tengo este código:Como llegar atributos valor

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


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

Como llegar valor de CustomAttribute por ejemplo, una?

Respuesta

3

A lo largo de las líneas de:

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

No se puede entender lo que quiere decir con "sin usar foreach", excepto que GetCustomAttributes siempre devuelve un array de ellos (a cuenta por tener múltiples atributos) . Si sabe que solo puede haber uno, simplemente use el primero.

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

"No se puede entender lo que quiere decir con 'sin usar foreach'" -> puedo encontrar algunos malos ejemplos que utilizan foreach para leer todos los atributos de valor – Dusan

+0

Sí, pero los malos ejemplos son sólo eso - ejemplos - debes tomar el conocimiento que dan y usarlo como mejor te parezca. – Jamiec

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

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