web-dev-qa-db-fra.com

Quand devrais-je utiliser l'attribut dans c #?

J'ai vu certains des exemples d'attribut utilize, par ex. (En tant que carte pour l'usine dynamique) http://msdn.microsoft.com/en-us/magazine/cc164170.aspx

Vous vous demandez simplement quel est l'avantage d'utiliser l'attribut? Je peux trouver la référence sur http://msdn.microsoft.com/fr-g/z0w1kczw (vs.80) .aspx Cependant, je ne suis pas sûr quand et pourquoi devrais-je essayer de l'utiliser .

44
ccppjava

Dans le cadre .NET, les attributs peuvent être utilisés pour de nombreuses raisons - comme

  • Définir quelles classes sont sérialisables

  • Choisir quelles méthodes sont exposées dans un service Web

Attributes vous permet d'ajouter descriptions aux classes, propriétés et méthodes au moment de la conception pouvant ensuite être examinée au moment de l'exécution par réflexion.

Considérez cet exemple:

Dites que vous avez une classe qui a une méthode de la version plus ancienne qui est toujours utilisée pour une raison quelconque et que vous avez maintenant proposé une nouvelle version de la classe qui utilise fantastique de la liste générique et de Linq et a une nouvelle méthode à des fins similaires. . Vous souhaitez que les développeurs préfèrent le nouveau fourni dans la version ultérieure de votre bibliothèque. Comment feras-tu cela ? Une façon est d'écrire dans la documentation. Un meilleur moyen est d'utiliser l'attribut comme suit.

public class AccountsManager
{
  [Obsolete("prefer GetAccountsList", true)]
  static Account[] GetAccounts( ) { }    
  static List<Account> GetAccountsList( ) { }      
}

Si une méthode obsolete est utilisée lorsque le programme est compilé, le développeur reçoit cette information et décide en conséquence.

CompteManager.getabOsst () est obsolète: préférez getCelatslist

Nous pouvons également créer et ajouter (Custom Attributes selon les exigences.

Référence :


J'espère que cela t'aides

33
Asad

Ma recommandation: Utilisez des attributs à des faits sur les mécanismes , mais pas à des aspects du modèle de votre domaine commercial .

Plus de détails:

http://blogs.msdn.com/ericlippert/archive/2009/02/02/properties-vs-attributes.aspx

24
Eric Lippert

Les attributs sont appropriés lorsque vous souhaitez attacher des métadonnées à vos classes ou membres de la classe, ainsi que lors de l'application d'un comportement commun sans avoir à mettre en œuvre une certaine interface pour chaque unité qui partage le comportement. Ce dernier est un exemple de programmation orientée formelle .

7
Anders Fjeldstad

Considérez un attribut sous forme de métadonnées sur la méthode ou la propriété auquel il appartient. Il raconte quelque chose de plus sur un membre.

4
Gerrie Schenck

Les prédéfinies et utilisent des types d'attributs pour contrôler le comportement de l'application de l'application.

Considérez l'attribut [WebMethod], à l'exécution de l'attribut, résout cet attribut et déterminer cette méthode à être exposée dans un service Web.

De la même manière, vous pouvez écrire vos attributs personnalisés pour contrôler le comportement de votre application au moment de l'exécution. Les attributs peuvent cibler les classes, les méthodes, les propriétés, les délégués, l'enum, l'événement, le domaine ...

Pour résoudre l'attribut au moment de l'exécution, vous devez utiliser la réflexion.

Checkout le MSDN Lien pour plus de détails.

1
RameshVel