Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Type.GetMembers-Methode: (BindingFlags)

 

Veröffentlicht: Oktober 2016

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen die für den aktuellen Type definierten Member.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public abstract MemberInfo[] GetMembers(
	BindingFlags bindingAttr
)

Parameter

bindingAttr
Type: System.Reflection.BindingFlags

Eine Bitmaske aus einem oder mehreren BindingFlags, die angeben, wie die Suche durchgeführt wird.

- oder -

0 (null), (BindingFlags.Default) um ein leeres Array zurückzugeben.

Rückgabewert

Type: System.Reflection.MemberInfo[]

Ein Array von MemberInfo-Objekten, die sämtliche für den aktuellen Type definierten öffentlichen Member darstellen, die den angegebenen Bindungseinschränkungen entsprechen.

- oder -

Ein leeres Array vom MemberInfo-Typ, wenn für den aktuellen Type keine Member definiert sind oder keiner der definierten Member den Bindungseinschränkungen entspricht.

Mitglieder enthalten Eigenschaften, Methoden, Felder, Ereignisse und So weiter.

Die GetMembers Methode kehrt Elemente in einer bestimmten Reihenfolge, z. B. alphabetische oder Reihenfolge der Deklaration. Code muss nicht abhängig von der Reihenfolge, in der Elemente zurückgegeben werden, da, das variieren kann.

Die folgenden BindingFlags Filterflags kann festgelegt werden, welche Member in die Suche einbezogen werden:

  • Geben Sie entweder BindingFlags.Instance oder BindingFlags.Static um ein Ergebnis zurückgegeben.

  • Geben Sie BindingFlags.Public Öffentliche Mitglieder in die Suche einbezogen werden sollen.

  • Geben Sie BindingFlags.NonPublic nicht öffentliche Mitglieder (d. h. private, interne und geschützte Member) in die Suche einbezogen werden sollen. Nur geschützte und interne Member in Basisklassen werden zurückgegeben. Private Member in Basisklassen werden nicht zurückgegeben.

  • Geben Sie BindingFlags.FlattenHierarchy enthalten public und protected statische Member der Hierarchie; private statische Member in geerbten Klassen sind nicht eingeschlossen.

Die folgenden BindingFlags Modifiziererflags so ändern Sie die Funktionsweise der Suche verwendet werden können:

  • BindingFlags.DeclaredOnly Suchen Sie nur die Member deklariert die Type, nicht die Elemente, die nur geerbt wurden.

Beim Aufruf dieser Methode nur das Public Flag oder nur die NonPublic Flag die angegebenen Member zurückgegeben wird und alle anderen Flags ist nicht erforderlich.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Um die Verwendung dieser methodenüberladung klasseninitialisierung (.cctor) zu erhalten, geben Sie BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic). Sie erhalten auch die Klasseninitialisierer der TypeInitializer Eigenschaft.

Wenn der aktuelle t: System.Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo Objekte, wobei die Typparameter durch die entsprechenden Typargumente ersetzt.

Wenn die aktuelle Type stellt ein Typparameter in der Definition eines generischen Typs oder einer generischen Methode, diese Methode sucht, die Mitglieder der Class-Einschränkung oder die Elemente der Object befindet sich kein Class-Einschränkung.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die GetMembers(BindingFlags) methodenüberladung zum Sammeln von Informationen über alle öffentlichen Instanzmember einer angegebenen Klasse.


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
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: