[C#] Accéder au type d'une classe
Il existe le mot-clé this pour accéder à l'instance d'une classe.
Il existe le mot-clé base pour accéder à la classe mère d'une classe.
Mais existe-t-il un mot-clé (ou une astuce) pour accéder au type de la classe elle-même, de façon "statique" ?
Je m'explique : j'ai une classe mère Item à partir de laquelle dérivent toute une palanquée de classes. Exemple : Devise : Item.
Chacune de ces classes a des attributs personnalisés :
Code:
1 2 3 4 5 6 7 8
| [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
class ItemAttribute : Attribute
{
public string Flag;
public int FieldsCount;
public int FlagRepeat;
public int ContentRepeat;
} |
Je souhaite rédiger dans ma classe mère Item des propriétés statiques permettant d'accéder à ces attributs, mais correspondant au type de la classe dérivant (exemple : accéder aux attributs de Devise à partir de propriétés statiques définies dans Item).
Actuellement, j'utilise l'instance des classes, mais c'est un peu nul de ne pas pouvoir y accéder de façon statique, puisque ce sont des attributs. Exemple :
Code:
1 2 3 4 5 6 7
| public string Flag
{
get
{
return ((ItemAttribute[])this.GetType().GetCustomAttributes(typeof(ItemAttribute), true))[0].Flag;
}
} |
Ceci dit, il y a peut-être une mauvaise conception à l'origine. Je suis donc ouvert à toute proposition. Le principe d'origine étant de ne pas avoir à définir des propriétés pour chaque classe qui dérivera de Item.
Merci !