2010-08-02 5 views
7

J'ai ce code:Comment obtenir les attributs valeur

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


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

Comment obtenir la valeur de CustomAttribute par exemple une?

Répondre

3

Le long des lignes de:

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

Je ne comprends pas ce que vous entendez par « sans utiliser foreach », sauf que GetCustomAttributes retourne toujours un tableau d'entre eux (pour tenir compte d'avoir plusieurs attributs) . Si vous savez qu'il ne peut y en avoir qu'un, utilisez le premier.

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

« ne peut pas comprendre ce que vous entendez par « sans utiliser foreach » » -> je trouve quelques mauvais exemples qui utilisent foreach pour lire tous les attributs apprécient – Dusan

+0

Oui, mais les mauvais exemples ne sont que des exemples - - vous devriez prendre les connaissances qu'ils donnent et les utiliser comme bon vous semble. – Jamiec

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

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