Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
Type.GetMembers, méthode (BindingFlags)
En cas de substitution dans une classe dérivée, recherche les membres définis pour le Type en cours, à l'aide des contraintes de liaison spécifiées.
Assembly : mscorlib (dans mscorlib.dll)
Paramètres
- bindingAttr
- Type : System.Reflection.BindingFlags
Masque de bits constitué d'un ou de plusieurs BindingFlags spécifiant le mode d'exécution de la recherche.
ou
Zéro, pour retourner null.
Valeur de retour
Type : System.Reflection.MemberInfo[]Tableau d'objets MemberInfo représentant tous les membres définis pour le Type en cours qui correspondent aux contraintes de liaison spécifiées.
ou
Tableau vide du type MemberInfo si aucun membre n'est défini pour le Type en cours ou si aucun des membres définis ne correspond aux contraintes de liaison.
Implémentations
_Type.GetMembers(BindingFlags)IReflect.GetMembers(BindingFlags)
Parmi les membres figurent des propriétés, méthodes, champs, événements, etc.
La méthode GetMembers ne retourne pas les membres dans un ordre particulier, tel que l'ordre alphabétique ou l'ordre de déclaration. Votre code ne doit pas être fonction de l'ordre dans lequel les membres sont retournés, car cet ordre varie.
Les indicateurs de filtre BindingFlags suivants peuvent être utilisés pour définir les membres à inclure dans la recherche :
-
Vous devez spécifier soit BindingFlags.Instance, soit BindingFlags.Static pour obtenir un retour.
-
Spécifiez BindingFlags.Public pour inclure les membres publics dans la recherche.
-
Spécifiez BindingFlags.NonPublic pour inclure les membres non publics (c'est-à-dire les membres privés, internes et protégés) dans la recherche. Seuls les membres protégés et internes sur les classes de base sont retournés ; les membres privés sur les classes de base ne sont pas retournés.
-
Spécifiez BindingFlags.FlattenHierarchy pour inclure les membres statiques public et protected en haut de la hiérarchie ; les membres statiques private dans les classes héritées ne sont pas inclus.
Les indicateurs de modificateur BindingFlags suivants peuvent être utilisés pour modifier le fonctionnement de la recherche :
-
BindingFlags.DeclaredOnly pour limiter la recherche aux membres déclarés dans Type et exclure ceux qui ont été simplement hérités.
L'appel de cette méthode uniquement avec les indicateurs Public ou NonPublic retournera les membres spécifiés et ne nécessite aucun autre indicateur.
Consultez System.Reflection.BindingFlags pour plus d'informations.
Pour obtenir l'initialiseur de classe (.cctor) à l'aide de cette surcharge de méthode, vous devez spécifier BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic en Visual Basic). Vous pouvez également obtenir l'initialiseur de classe à l'aide de la propriété TypeInitializer.
Si le T:System.Type actuel représente un type générique construit, cette méthode retourne les objets MemberInfo avec les paramètres de type remplacés par les arguments de type appropriés.
Si le Type actuel représente un paramètre de type dans la définition d'un type ou d'une méthode générique, cette méthode recherche les membres de la contrainte de classe, ou les membres de Object, s'il n'existe aucune contrainte de classe.
L'exemple de code suivant montre comment utiliser la surcharge de méthode GetMembers(BindingFlags) pour rassembler des informations à propos de tous les membres d'instance publics d'une classe spécifiée.
class MyClass { public int myInt = 0; public string myString = null; public MyClass() { } public void Myfunction() { } } class Type_GetMembers_BindingFlags { public static void Main() { try { MyClass MyObject = new MyClass(); MemberInfo [] myMemberInfo; // Get the type of the class 'MyClass'. Type myType = MyObject.GetType(); // Get the public instance members of the class 'MyClass'. myMemberInfo = myType.GetMembers(BindingFlags.Public|BindingFlags.Instance); Console.WriteLine( "\nThe public instance members of class '{0}' are : \n", myType); for (int i =0 ; i < myMemberInfo.Length ; i++) { // Display name and type of the member of 'MyClass'. Console.WriteLine( "'{0}' is a {1}", myMemberInfo[i].Name, myMemberInfo[i].MemberType); } } catch (SecurityException e) { Console.WriteLine("SecurityException : " + e.Message ); } } }
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.