Réflexion (C#)

La réflexion fournit des objets (de type Type) qui décrivent des assemblys, des modules et des types. Vous pouvez utiliser la réflexion pour créer dynamiquement une instance d’un type, lier le type à un objet existant ou obtenir le type à partir d’un objet existant et invoquer ses méthodes ou accéder à ses champs et propriétés. Si vous utilisez des attributs dans votre code, la réflexion vous permet d’y accéder. Pour plus d’informations, consultez Attributs.

Voici un exemple simple de réflexion à l’aide de la GetType() méthode - héritée par tous les types de la Object classe de base - pour obtenir le type d’une variable :

Notes

Veillez à ajouter using System; et using System.Reflection; en haut de votre fichier .cs .

// Using GetType to obtain type information:
int i = 42;
Type type = i.GetType();
Console.WriteLine(type);

La sortie est la suivante : System.Int32.

L’exemple suivant utilise la réflexion pour obtenir le nom complet de l’assembly chargé.

// Using Reflection to get information of an Assembly:
Assembly info = typeof(int).Assembly;
Console.WriteLine(info);

La sortie est la suivante : System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e.

Notes

Les mots clés protected C# et internal n’ont aucune signification dans le langage intermédiaire (IL) et ne sont pas utilisés dans les API de réflexion. Les termes correspondants en langage intermédiaire sont Family et Assembly. Pour identifier une méthode internal à l’aide de la réflexion, utilisez la propriété IsAssembly. Pour identifier une méthode protected internal, utilisez IsFamilyOrAssembly.

Vue d’ensemble de la réflexion

La réflexion est utile dans les situations suivantes :

Pour plus d'informations :

Voir aussi