Quand dois-je utiliser l'attribut en C#?

J'ai vu quelques exemples d'attribut use, par exemple (comme une carte pour l'usine dynamique) http://msdn.microsoft.com/en-us/magazine/cc164170.aspx

Je me demande juste quel est l'avantage d'utiliser l'attribut? Je peux trouver la référence sur http://msdn.microsoft.com/en-gb/z0w1kczw (VS.80).aspx cependant, je ne sais pas quand et pourquoi devrais-je essayer de l'utiliser.

42
demandé sur user 2010-02-19 12:17:33

5 réponses

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

  • Définir quelles classes sont sérialisable

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

Attributes permettez-nous d'ajouter descriptions aux classes, propriétés et méthodes au moment de la conception qui peuvent ensuite être examinées à l'exécution via la réflexion.

Considérons cet exemple:

Disons que vous avez une classe qui a une méthode de l'ancienne version qui est toujours utilisé pour une raison quelconque et maintenant vous avez mis au point une nouvelle version de la classe qui fait une utilisation fantastique de Generic List et 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 allez-vous faire ? Une façon est d'écrire dans la documentation. Une meilleure façon 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 lors de la compilation du programme, le développeur obtient ces informations et décide conséquent.

AccountManager.GetAccounts() est obsolète: préférer GetAccountsList

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

Référence :


J'espère que cela aide

29
répondu Asad Butt 2014-01-27 20:06:32

Ma recommandation: utilisez des attributs pour indiquer des faits sur les mécanismes , mais pas pour modéliser les aspects de votre domaine d'activité.

Plus de détails:

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

20
répondu Eric Lippert 2010-02-19 16:30:06

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

5
répondu Anders Fjeldstad 2010-02-19 09:26:37

Considérez un attribut comme des métadonnées sur la méthode ou la propriété à laquelle il appartient. Il dit quelque chose de plus sur un membre.

4
répondu Gerrie Schenck 2010-02-19 09:26:35

Le. Net Framework prédéfinit et utilise des types d'attributs pour contrôler le comportement d'exécution de l'application.

Considérez l'attribut [webmethod], lors de l'exécution, le framework résout cet attribut et détermine que cette méthode sera 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 lors de l'exécution. Les attributs peuvent cibler les classes, méthodes, propriétés, déléguer, énumérer, événement, champ...

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

Consultez le lienMSDN pour plus de détails.

1
répondu RameshVel 2010-02-19 09:25:47