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: ()

 

Veröffentlicht: Oktober 2016

Gibt sämtliche öffentlichen Member des aktuellen Type zurück.

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

public MemberInfo[] GetMembers()

Rückgabewert

Type: System.Reflection.MemberInfo[]

Ein Array von MemberInfo-Objekten, die sämtliche öffentlichen Member des aktuellen Type darstellen.

- oder -

Ein leeres Array vom MemberInfo-Typ, wenn der aktuelle Type keine Standardmember besitzt.

Implementiert

_Type.GetMembers()

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

Die GetMembers Methode gibt keinen zurück Mitglieder in einer bestimmten Reihenfolge, z. B. alphabetische oder Reihenfolge der Deklaration. Der Code muss nicht richten sich nach der Reihenfolge, in der Elemente zurückgegeben werden, da, bei der Reihenfolge.

Diese methodenüberladung Ruft die GetMembers(BindingFlags) -methodenüberladung mit BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static (BindingFlags.PublicOrBindingFlags.InstanceOrBindingFlags.Static in Visual Basic). Es findet keine Klasseninitialisierer (".cctor"). Um Klasseninitialisierer zu ermitteln, verwenden Sie eine Überladung mit BindingFlags, und geben Sie BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic). Außerdem erhalten Sie, dass die klasseninitialisierung verwenden die TypeInitializer Eigenschaft.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von zurückgegeben werden die Get Methoden, wenn für einen Typ reflektieren.

Memberart

Statisch

Nicht statische

Konstruktor

Nein

Nein

Feld

Nein

Ja. Ein Feld ist immer nach Name und Signatur ausblenden.

Ereignis

Nicht zutreffend

Das allgemeine Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden. Siehe Hinweis 2 weiter unten.

Methode

Nein

Ja. Eine Methode (virtuelle und nicht virtuell) möglich nach Namen verdeckte oder nach Name und Signatur ausblenden.

Geschachtelten Typs

Nein

Nein

Eigenschaft

Nicht zutreffend

Das allgemeine Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden. Siehe Hinweis 2 weiter unten.

  1. Nach Name und Signatur ausblenden berücksichtigt, dass alle Teile der Signatur, die benutzerdefinierten Modifizierer, einschließlich Typen, Parametertypen Sentinels enthält und nicht verwalteten Aufrufkonventionen zurückgeben. Dies ist ein binärer Vergleich.

  2. Für die Reflektion sind die Eigenschaften und Ereignisse nach Name und Signatur ausblenden. Wenn Sie eine Eigenschaft mit einer Get und Set-Zugriffsmethode in der Basisklasse haben, aber hat nur einen Get-Accessor für die abgeleitete Klasse, die Eigenschaft der abgeleiteten Klasse ausgeblendet die Basisklasseneigenschaft und nicht den Setter für die Basisklasse zugreifen werden.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn die aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo Objekte mit Parametern für den durch die entsprechenden Typargumente ersetzt.

Wenn die aktuelle Type stellt ein Typparameter in der Definition eines generischen Typs oder generische Methode, diese Methode sucht, die Mitglieder der Class-Einschränkung oder die Elemente der Object Wenn ohne klasseneinschränkung ist.

Im folgenden Codebeispiel wird veranschaulicht, wie die GetMembers() -methodenüberladung, um die Erfassung von Informationen über alle öffentlichen Member einer bestimmten Klasse.

class MyClass
{
   public int myInt = 0;
   public string myString = null;

   public MyClass()
   {
   }
   public void Myfunction()
   {
   }
}

class Type_GetMembers
{
   public static void Main()
   {
      try
      {
         MyClass myObject = new MyClass();
         MemberInfo[] myMemberInfo; 

         // Get the type of 'MyClass'.
         Type myType = myObject.GetType(); 

         // Get the information related to all public member's of 'MyClass'. 
         myMemberInfo = myType.GetMembers();

         Console.WriteLine( "\nThe members of class '{0}' are :\n", myType); 
         for (int i =0 ; i < myMemberInfo.Length ; i++)
         {
            // Display name and type of the concerned member.
            Console.WriteLine( "'{0}' is a {1}", myMemberInfo[i].Name, myMemberInfo[i].MemberType);
         }
      }
      catch(SecurityException e)
      {
         Console.WriteLine("Exception : " + e.Message ); 
      }
   }
}

.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: