2009-08-06 4 views
3

Y at-il un attribut intégré dans le framework .net pour marquer du code avec une clé arbitraire et une valeur? J'ai regardé the list, mais je n'y vois rien d'utile. Ce que nous voulons idéalement est de pouvoir direY a-t-il un attribut de paire nom/valeur intégré?

[NameValuePair("MyKey", "My long bit of text")] 

... puis retirez-le plus tard

En fait, ce que nous voulons vraiment être en mesure de faire est intégré info dans le AssemblyInfo à temps de construction continue d'intégration, comme

[Assembly: NameValuePair("MyKey", "My long bit of text")] 

puis retirez-le plus tard

Je l'ai vu le post de Jeff sur les Custom AssemblyInfo Attributes, et il est bon, mais s'il y a une attribut implicite cuit dans le cadre, ce sera encore mieux.

Répondre

5

Il n'y a pas d'attribut intégré qui représente une paire nom/valeur, bien qu'il soit assez facile à implémenter. Si votre clé et votre valeur sont toujours des chaînes, vous avez simplement besoin d'un attribut qui prend les deux chaînes comme paramètres constructeurs.

[AttributeUsage(AttributeTargets.Assembly)] 
public KeyValuePairAttribute : Attribute 
{ 
    private string key; 
    private string value; 

    private KeyValuePairAttribute() { } 

    public KeyValuePairAttribute(string key, string value) 
    { 
     this.key = key; 
     this.value = value; 
    } 
} 
+0

Oui, c'est vrai. Nous devons nous assurer que la classe existe dans chaque «chose» que nous construisons via l'intégration continue (ce qui pourrait être un monde de douleur!) Mais c'est un bon moyen de repli –

+0

L'approche la plus simple si vous voulez inclure le fichier source dans chaque projet est de l'inclure comme un fichier lié. L'autre option consiste à le compiler dans une DLL (ou projet) distincte, puis à inclure cette DLL (ou projet) comme référence dans chacun des autres projets. Dans les deux cas, il ne reste plus qu'un seul fichier de code source à gérer. –

+0

J'aime l'idée du fichier lié. Pas qu'il y ait beaucoup de source à maintenir cependant :-) –

Questions connexes