Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Type.GetMembers (BindingFlags)

 

Data di pubblicazione: ottobre 2016

Quando ne viene eseguito l'override in una classe derivata, cerca i membri definiti per l'oggetto Type corrente, usando i vincoli di binding specificati.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public abstract MemberInfo[] GetMembers(
	BindingFlags bindingAttr
)

Parametri

bindingAttr
Type: System.Reflection.BindingFlags

Maschera di bit costituita da uno o più BindingFlags che consente di specificare le modalità di esecuzione della ricerca.

-oppure-

Zero (BindingFlags.Default), per restituire una matrice vuota.

Valore restituito

Type: System.Reflection.MemberInfo[]

Matrice di oggetti MemberInfo che rappresentano tutti i membri definiti per l'oggetto Type corrente corrispondenti ai vincoli di binding specificati.

-oppure-

Matrice vuota di tipo MemberInfo, se non vi sono membri definiti per l'oggetto Type corrente oppure se nessuno dei membri definiti corrisponde ai vincoli di binding.

Membri includono proprietà, metodi, campi, eventi e così via.

Il GetMembers metodo non restituisce i membri in un ordine specifico, ad esempio in ordine alfabetico o un ordine di dichiarazione. Il codice non deve dipendere dall'ordine in cui vengono restituiti i membri, perché tale ordine varia.

Nell'esempio BindingFlags flag del filtro può essere utilizzato per definire i membri da includere nella ricerca:

  • È necessario specificare BindingFlags.Instance o BindingFlags.Static per ottenere un risultato.

  • Specificare BindingFlags.Public per includere i membri pubblici nella ricerca.

  • Specificare BindingFlags.NonPublic per includere nella ricerca i membri non pubblici (ovvero, i membri privati, interni e protetti). Solo protetti e vengono restituiti i membri interni delle classi base; i membri privati delle classi base non vengono restituiti.

  • Specificare BindingFlags.FlattenHierarchy per includere public e protected membri statici nella gerarchia; private non sono inclusi i membri statici nelle classi ereditate.

Nell'esempio BindingFlags flag di modifica consente di modificare le modalità di ricerca:

  • BindingFlags.DeclaredOnly Per cercare solo i membri dichiarati nel Type, non i membri sono stati ereditati.

Questo metodo solo con il Public flag o solo il NonPublic flag restituirà i membri specificati e non richiede nessun altro flag.

Per altre informazioni, vedere System.Reflection.BindingFlags.

Per ottenere l'inizializzatore di classi (con estensione cctor) tramite questo overload del metodo, è necessario specificare BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic). È inoltre possibile ottenere l'inizializzatore di classi tramite il TypeInitializer proprietà.

Se l'oggetto T:System.Type corrente rappresenta un tipo generico costruito, questo metodo restituisce il MemberInfo oggetti con i parametri di tipo sostituiti dagli argomenti di tipo appropriato.

Se l'oggetto Type rappresenta un parametro di tipo nella definizione di un tipo generico o un metodo generico, questo metodo vengono cercati i membri del vincolo di classe o i membri di Object se è presente alcun vincolo di classe.

Esempio di codice seguente viene illustrato come utilizzare il GetMembers(BindingFlags) overload del metodo per raccogliere informazioni su tutti i membri di istanza pubblici di una classe specificata.


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
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: