Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Type.GetMembers méthode (BindingFlags)

 

Date de publication : novembre 2016

En cas de substitution dans une classe dérivée, recherche les membres définis pour le Type actuel, à l'aide des contraintes de liaison spécifiées.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public abstract MemberInfo[] GetMembers(
	BindingFlags bindingAttr
)

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 (BindingFlags.Default), pour retourner un tableau vide.

Valeur de retour

Type: System.Reflection.MemberInfo[]

Tableau d'objets MemberInfo représentant tous les membres définis pour le Type actuel 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 actuel ou si aucun des membres définis ne correspond aux contraintes de liaison.

Les membres incluent les propriétés, méthodes, champs, événements et ainsi de suite.

Le GetMembers méthode ne retourne pas les membres dans un ordre particulier, tel qu’alphabétique ou l’ordre de déclaration. Votre code ne doit pas varient en fonction de l’ordre dans lequel les membres sont retournés, car cet ordre varie.

Les éléments suivants BindingFlags les indicateurs de filtre peuvent être utilisés pour définir les membres à inclure dans la recherche :

  • Vous devez spécifier BindingFlags.Instance ou BindingFlags.Static afin d’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 protégés et des membres 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 public et protected des membres statiques de la hiérarchie ; private des membres statiques dans les classes héritées ne sont pas inclus.

Les éléments suivants BindingFlags les indicateurs de modificateur peuvent être utilisés pour modifier le fonctionnement de la recherche :

  • BindingFlags.DeclaredOnly Pour rechercher uniquement les membres déclarés sur le Type, qui ont été simplement hérités.

Appel de cette méthode avec uniquement les Public indicateur ou uniquement les NonPublic indicateur retournera les membres spécifiés et ne nécessite aucun autre indicateur.

Pour plus d'informations, voir System.Reflection.BindingFlags.

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 TypeInitializer propriété.

Si le t : System.type actuel représente un type générique construit, cette méthode retourne le MemberInfo objets avec les paramètres de type remplacés par les arguments de type approprié.

Si le courant Type représente un paramètre de type dans la définition d’un type générique ou de 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 le GetMembers(BindingFlags) surcharge de méthode pour collecter des informations sur 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 ); 
      }      

      //Output:
      //The public instance members of class 'MyClass' are :

      //'Myfunction' is a Method
      //'ToString' is a Method
      //'Equals' is a Method
      //'GetHashCode' is a Method
      //'GetType' is a Method
      //'.ctor' is a Constructor
      //'myInt' is a Field
      //'myString' is a Field

   }
}

.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Retour au début
Afficher: