Type.GetMember Methode

Definition

Ruft die angegebenen Member des aktuellen Type ab.

Überlädt

GetMember(String)

Sucht die öffentlichen Member mit dem angegebenen Namen.

GetMember(String, BindingFlags)

Sucht die angegebenen Member unter Verwendung der angegebenen Bindungseinschränkungen.

GetMember(String, MemberTypes, BindingFlags)

Sucht die angegebenen Member des angegebenen Membertyps unter Verwendung der angegebenen Bindungseinschränkungen.

GetMember(String)

Sucht die öffentlichen Member mit dem angegebenen Namen.

public:
 cli::array <System::Reflection::MemberInfo ^> ^ GetMember(System::String ^ name);
public:
 virtual cli::array <System::Reflection::MemberInfo ^> ^ GetMember(System::String ^ name);
public System.Reflection.MemberInfo[] GetMember (string name);
member this.GetMember : string -> System.Reflection.MemberInfo[]
abstract member GetMember : string -> System.Reflection.MemberInfo[]
override this.GetMember : string -> System.Reflection.MemberInfo[]
Public Function GetMember (name As String) As MemberInfo()

Parameter

name
String

Die Zeichenfolge, die den Namen des abzurufenden öffentlichen Members enthält.

Gibt zurück

MemberInfo[]

Ein Array von MemberInfo-Objekten, die die öffentlichen Member mit dem angegebenen Namen darstellen, sofern gefunden, andernfalls ein leeres Array.

Implementiert

Ausnahmen

name ist null.

Beispiele

Im folgenden Beispiel werden alle Elemente der String Klasse angezeigt, die mit dem Buchstaben C beginnen.

using namespace System;
using namespace System::Security;
using namespace System::Reflection;

// forward declarations:
void GetMemberInfo();
void GetPublicStaticMemberInfo();
void GetPublicInstanceMethodMemberInfo();
int main()
{
   try
   {
      GetMemberInfo();
      GetPublicStaticMemberInfo();
      GetPublicInstanceMethodMemberInfo();
   }
   catch ( ArgumentNullException^ e ) 
   {
      Console::WriteLine( "ArgumentNullException occurred." );
      Console::WriteLine( "Source: {0}", e->Source );
      Console::WriteLine( "Message: {0}", e->Message );
   }
   catch ( NotSupportedException^ e ) 
   {
      Console::WriteLine( "NotSupportedException occurred." );
      Console::WriteLine( "Source: {0}", e->Source );
      Console::WriteLine( "Message: {0}", e->Message );
   }
   catch ( SecurityException^ e ) 
   {
      Console::WriteLine( "SecurityException occurred." );
      Console::WriteLine( "Source: {0}", e->Source );
      Console::WriteLine( "Message: {0}", e->Message );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception occurred." );
      Console::WriteLine( "Source: {0}", e->Source );
      Console::WriteLine( "Message: {0}", e->Message );
   }

}

void GetMemberInfo()
{
   String^ myString = "GetMember_String";
   Type^ myType = myString->GetType();
   
   // Get the members for myString starting with the letter C.
   array<MemberInfo^>^myMembers = myType->GetMember( "C*" );
   if ( myMembers->Length > 0 )
   {
      Console::WriteLine( "\nThe member(s) starting with the letter C for type {0}:", myType );
      for ( int index = 0; index < myMembers->Length; index++ )
         Console::WriteLine( "Member {0}: {1}", index + 1, myMembers[ index ] );
   }
   else
      Console::WriteLine( "No members match the search criteria." );
}

using System;
using System.Security;
using System.Reflection;

public class MyMemberSample
{
    public static void Main()
    {
        MyMemberSample myClass = new MyMemberSample();
        try
        {
            myClass.GetMemberInfo();
            myClass.GetPublicStaticMemberInfo();	
            myClass.GetPublicInstanceMethodMemberInfo();	
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(NotSupportedException e)
        {
            Console.WriteLine("NotSupportedException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(SecurityException e)
        {
            Console.WriteLine("SecurityException occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception occurred.");
            Console.WriteLine("Source: " + e.Source);
            Console.WriteLine("Message: " + e.Message);
        }
    }

    public void GetMemberInfo()
    {
        String myString = "GetMember_String";

        Type myType = myString.GetType();
        // Get the members for myString starting with the letter C.
        MemberInfo[] myMembers = myType.GetMember("C*");
        if(myMembers.Length > 0)
        {
            Console.WriteLine("\nThe member(s) starting with the letter C for type {0}:", myType);
            for(int index=0; index < myMembers.Length; index++)
                Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
        }
        else
        {
            Console.WriteLine("No members match the search criteria.");
        }
    }
open System
open System.Security
open System.Reflection

type MyMemberSample() =
    member _.GetMemberInfo() =
        let myString = "GetMember_String"

        let myType = myString.GetType()
        // Get the members for myString starting with the letter C.
        let myMembers = myType.GetMember "C*"
        if myMembers.Length > 0 then
            printfn $"\nThe member(s) starting with the letter C for type {myType}:"
            for index = 0 to myMembers.Length - 1 do
                printfn $"Member {index + 1}: {myMembers[index]}"
        else
            printfn "No members match the search criteria."

    member _.GetPublicStaticMemberInfo() =
        let myString = "GetMember_String_BindingFlag"
        let myType = myString.GetType()
        // Get the public static members for the class myString starting with the letter C.
        let myMembers = myType.GetMember("C*", BindingFlags.Public ||| BindingFlags.Static)
        if myMembers.Length > 0 then
            printfn $"\nThe public static member(s) starting with the letter C for type {myType}:"
            for index = 0 to myMembers.Length - 1 do
                printfn $"Member {index + 1}: {myMembers[index]}"
        else
            printfn "No members match the search criteria."

    member _.GetPublicInstanceMethodMemberInfo() =
        let myString = "GetMember_String_MemberType_BindingFlag"
        let myType = myString.GetType()
        // Get the public instance methods for myString starting with the letter C.
        let myMembers = myType.GetMember("C*", MemberTypes.Method, BindingFlags.Public ||| BindingFlags.Instance)
        if myMembers.Length > 0 then
            printfn $"\nThe public instance method(s) starting with the letter C for type {myType}:"
            for index = 0 to myMembers.Length - 1 do
                printfn $"Member {index + 1}: {myMembers[index]}"
        else
            printfn "No members match the search criteria."

let myClass = MyMemberSample()
try
    myClass.GetMemberInfo()
    myClass.GetPublicStaticMemberInfo()
    myClass.GetPublicInstanceMethodMemberInfo()
with
| :? ArgumentNullException as e ->
    printfn "ArgumentNullException occurred."
    printfn $"Source: {e.Source}"
    printfn $"Message: {e.Message}"
| :? NotSupportedException as e ->
    printfn $"NotSupportedException occurred."
    printfn $"Source: {e.Source}"
    printfn $"Message: {e.Message}"
| :? SecurityException as e ->
    printfn "SecurityException occurred."
    printfn $"Source: {e.Source}"
    printfn $"Message: {e.Message}"
| e ->
    printfn "Exception occurred."
    printfn $"Source: {e.Source}"
    printfn $"Message: {e.Message}"

Imports System.Security
Imports System.Reflection

Public Class MyMemberSample

    Public Shared Sub Main()
        Dim [myClass] As New MyMemberSample()
        Try
            [myClass].GetMemberInfo()
            [myClass].GetPublicStaticMemberInfo()
            [myClass].GetPublicInstanceMethodMemberInfo()
        Catch e As ArgumentNullException
            Console.WriteLine("ArgumentNullException occurred.")
            Console.WriteLine(("Source: " + e.Source))
            Console.WriteLine(("Message: " + e.Message))
        Catch e As NotSupportedException
            Console.WriteLine("NotSupportedException occurred.")
            Console.WriteLine(("Source: " + e.Source))
            Console.WriteLine(("Message: " + e.Message))
        Catch e As SecurityException
            Console.WriteLine("SecurityException occurred.")
            Console.WriteLine(("Source: " + e.Source))
            Console.WriteLine(("Message: " + e.Message))
        Catch e As Exception
            Console.WriteLine("Exception occurred.")
            Console.WriteLine(("Source: " + e.Source))
            Console.WriteLine(("Message: " + e.Message))
        End Try
    End Sub


    Public Sub GetMemberInfo()
        Dim myString As [String] = "GetMember_String"
        Dim myType As Type = myString.GetType()
        ' Get the members for myString starting with the letter C.
        Dim myMembers As MemberInfo() = myType.GetMember("C*")
        If myMembers.Length > 0 Then
            Console.WriteLine(ControlChars.Cr + "The member(s) starting with the letter C for type {0}:", myType)
            Dim index As Integer
            For index = 0 To myMembers.Length - 1
                Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString())
            Next index
        Else
            Console.WriteLine("No members match the search criteria.")
        End If
    End Sub

Hinweise

Die Suche nach name Groß-/Kleinschreibung ist vertraulich. Die Suche umfasst elemente öffentlicher statischer und öffentlicher Instanzen.

Elemente umfassen Eigenschaften, Methoden, Felder, Ereignisse usw.

Die GetMember Methode gibt keine Elemente in einer bestimmten Reihenfolge zurück, z. B. alphabetisch oder Deklarationsreihenfolge. Ihr Code darf nicht von der Reihenfolge abhängig sein, in der Mitglieder zurückgegeben werden, da diese Reihenfolge variiert.

Diese Methodenüberladung findet keine Klassen initializer (statischer Konstruktor). Verwenden Sie eine Überladung, die | (BindingFlags.StaticBindingFlags.NonPublicOrin Visual Basic BindingFlags.NonPublic ) angibtBindingFlags, um BindingFlags.Static Klasseninitializer zu finden. Sie können auch den Klassen initializer mithilfe der TypeInitializer Eigenschaft abrufen.

In der folgenden Tabelle wird gezeigt, welche Elemente einer Basisklasse durch die Get Methoden zurückgegeben werden, wenn sie einen Typ widerspiegeln.

Memberart statischen Nicht statischer
Konstruktor Nein Nein
Feld Nein Ja. Ein Feld ist immer ausgeblendet nach Name und Signatur.
Ereignis Nicht zutreffend Die allgemeine Typsystemregel besteht darin, dass die Vererbung identisch mit den Methoden ist, die die Eigenschaft implementieren. Die Spiegelung behandelt Eigenschaften als Ausblenden nach Name und Signatur. Siehe Hinweis 2 unten.
Methode Nein Ja. Eine Methode (sowohl virtuelle als auch nicht virtuelle) kann nach Name oder Ausblenden nach Name und Signatur ausgeblendet werden.
Geschachtelter Typ Nein Nein
Eigenschaft Nicht zutreffend Die allgemeine Typsystemregel besteht darin, dass die Vererbung identisch mit den Methoden ist, die die Eigenschaft implementieren. Die Spiegelung behandelt Eigenschaften als Ausblenden nach Name und Signatur. Siehe Hinweis 2 unten.
  1. Hide-by-name-and-signature betrachtet alle Teile der Signatur, einschließlich benutzerdefinierter Modifizierer, Rückgabetypen, Parametertypen, Sentinels und nicht verwaltete Aufrufkonventionen. Dies ist ein binärer Vergleich.

  2. Für die Spiegelung werden Eigenschaften und Ereignisse nach Name und Signatur ausgeblendet. Wenn Sie über eine Eigenschaft mit einem Get- und einem Set-Accessor in der Basisklasse verfügen, aber die abgeleitete Klasse nur einen Get-Accessor hat, blendet die abgeleitete Klasseneigenschaft die Basisklasse-Eigenschaft aus, und Sie können nicht auf den Setter auf die Basisklasse zugreifen.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn der Aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo typspezifischen Parameter zurück, die durch die entsprechenden Typargumente ersetzt werden.

Wenn der Aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Elemente der Klasseneinschränkung oder die Elemente Object der Klasse, wenn keine Klasseneinschränkung vorhanden ist.

Hinweis

Für generische Methoden enthalten Sie nicht die Typargumente in name. Der C#-Code GetMember("MyMethod<int>") sucht z. B. nach einem Element mit dem Textnamen "MyMethod<int>", anstatt nach einer Methode MyMethod mit dem Namen "", die ein generisches Argument des Typs intenthält.

Siehe auch

Gilt für:

GetMember(String, BindingFlags)

Sucht die angegebenen Member unter Verwendung der angegebenen Bindungseinschränkungen.

public:
 virtual cli::array <System::Reflection::MemberInfo ^> ^ GetMember(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
public virtual System.Reflection.MemberInfo[] GetMember (string name, System.Reflection.BindingFlags bindingAttr);
abstract member GetMember : string * System.Reflection.BindingFlags -> System.Reflection.MemberInfo[]
override this.GetMember : string * System.Reflection.BindingFlags -> System.Reflection.MemberInfo[]
Public Overridable Function GetMember (name As String, bindingAttr As BindingFlags) As MemberInfo()

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden Member enthält.

bindingAttr
BindingFlags

Eine bitweise Kombination der Enumerationswerte, die angeben, wie die Suche durchgeführt wird.

- oder - Default, um ein leeres Array zurückzugeben.

Gibt zurück

MemberInfo[]

Ein Array von MemberInfo-Objekten, die die öffentlichen Member mit dem angegebenen Namen darstellen, sofern gefunden, andernfalls ein leeres Array.

Implementiert

Ausnahmen

name ist null.

Beispiele

Im folgenden Beispiel werden alle öffentlichen statischen Elemente der myString Klasse angezeigt, die mit dem Buchstaben C beginnen.

void GetPublicStaticMemberInfo()
{
   String^ myString = "GetMember_String_BindingFlag";
   Type^ myType = myString->GetType();
   
   // Get the public static members for the class myString starting with the letter C
   array<MemberInfo^>^myMembers = myType->GetMember( "C*", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Static) );
   if ( myMembers->Length > 0 )
   {
      Console::WriteLine( "\nThe public static member(s) starting with the letter C for type {0}:", myType );
      for ( int index = 0; index < myMembers->Length; index++ )
         Console::WriteLine( "Member {0}: {1}", index + 1, myMembers[ index ] );
   }
   else
      Console::WriteLine( "No members match the search criteria." );
}
public void GetPublicStaticMemberInfo()
{
    String myString = "GetMember_String_BindingFlag";
    Type myType = myString.GetType();
    // Get the public static members for the class myString starting with the letter C.
    MemberInfo[] myMembers = myType.GetMember("C*",
        BindingFlags.Public |BindingFlags.Static);
    if(myMembers.Length > 0)
    {
        Console.WriteLine("\nThe public static member(s) starting with the letter C for type {0}:", myType);
        for(int index=0; index < myMembers.Length; index++)
            Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
    }
    else
    {
        Console.WriteLine("No members match the search criteria.");
    }
}
member _.GetPublicStaticMemberInfo() =
    let myString = "GetMember_String_BindingFlag"
    let myType = myString.GetType()
    // Get the public static members for the class myString starting with the letter C.
    let myMembers = myType.GetMember("C*", BindingFlags.Public ||| BindingFlags.Static)
    if myMembers.Length > 0 then
        printfn $"\nThe public static member(s) starting with the letter C for type {myType}:"
        for index = 0 to myMembers.Length - 1 do
            printfn $"Member {index + 1}: {myMembers[index]}"
    else
        printfn "No members match the search criteria."
Public Sub GetPublicStaticMemberInfo()
    Dim myString As [String] = "GetMember_String_BindingFlag"

    Dim myType As Type = myString.GetType()
    ' Get the public static members for the class myString starting with the letter C.
    Dim myMembers As MemberInfo() = myType.GetMember("C*", BindingFlags.Public Or BindingFlags.Static)

    If myMembers.Length > 0 Then
        Console.WriteLine(ControlChars.Cr + "The public static member(s) starting with the letter C for type {0}:", myType)
        Dim index As Integer
        For index = 0 To myMembers.Length - 1
            Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString())
        Next index
    Else
        Console.WriteLine("No members match the search criteria.")
    End If
End Sub

Hinweise

Diese Methode kann von einer abgeleiteten Klasse außer Kraft gesetzt werden.

Elemente umfassen Eigenschaften, Methoden, Felder, Ereignisse usw.

Die GetMember Methode gibt keine Elemente in einer bestimmten Reihenfolge zurück, z. B. alphabetisch oder Deklarationsreihenfolge. Ihr Code darf nicht von der Reihenfolge abhängig sein, in der Mitglieder zurückgegeben werden, da diese Reihenfolge variiert.

Die folgenden BindingFlags Filter-Flags können verwendet werden, um zu definieren, welche Elemente in die Suche einbezogen werden sollen:

  • Sie müssen entweder oder BindingFlags.Static zum Abrufen einer Rückgabe angebenBindingFlags.Instance.

  • Geben Sie an BindingFlags.Public , öffentliche Mitglieder in die Suche einzuschließen.

  • Geben Sie an BindingFlags.NonPublic , nicht öffentliche Mitglieder (z. B. private, interne und geschützte Mitglieder) in die Suche einzuschließen.

  • Geben Sie anBindingFlags.FlattenHierarchy, wie Sie die Hierarchie einschließen und protected statische Elemente einbeziehen public möchten; private statische Elemente in geerbten Klassen sind nicht enthalten.

Die folgenden BindingFlags Modifizierer-Flags können verwendet werden, um zu ändern, wie die Suche funktioniert:

  • BindingFlags.IgnoreCase so ignorieren Sie den Fall von name.

  • BindingFlags.DeclaredOnly um nur die mitglieder zu durchsuchen, die auf der Type, nicht mitglieder, die einfach geerbt wurden.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Um den Klassen initializer (statischer Konstruktor) mithilfe dieser Methodenüberladung abzurufen, müssen Sie "statischer Konstruktor" für , und BindingFlags.Static | (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic BindingFlags.NonPublic ) für .name``bindingAttr Sie können auch den Klassen initializer mithilfe der TypeInitializer Eigenschaft abrufen.

Wenn der Aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo typspezifischen Parameter zurück, die durch die entsprechenden Typargumente ersetzt werden.

Wenn der Aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Elemente der Klasseneinschränkung oder die Elemente Object der Klasse, wenn keine Klasseneinschränkung vorhanden ist.

Hinweis

Für generische Methoden enthalten Sie nicht die Typargumente in name. Der C#-Code GetMember("MyMethod<int>") sucht z. B. nach einem Element mit dem Textnamen "MyMethod<int>", anstatt nach einer Methode MyMethod mit dem Namen "", die ein generisches Argument des Typs intenthält.

Siehe auch

Gilt für:

GetMember(String, MemberTypes, BindingFlags)

Sucht die angegebenen Member des angegebenen Membertyps unter Verwendung der angegebenen Bindungseinschränkungen.

public:
 virtual cli::array <System::Reflection::MemberInfo ^> ^ GetMember(System::String ^ name, System::Reflection::MemberTypes type, System::Reflection::BindingFlags bindingAttr);
public virtual System.Reflection.MemberInfo[] GetMember (string name, System.Reflection.MemberTypes type, System.Reflection.BindingFlags bindingAttr);
abstract member GetMember : string * System.Reflection.MemberTypes * System.Reflection.BindingFlags -> System.Reflection.MemberInfo[]
override this.GetMember : string * System.Reflection.MemberTypes * System.Reflection.BindingFlags -> System.Reflection.MemberInfo[]
Public Overridable Function GetMember (name As String, type As MemberTypes, bindingAttr As BindingFlags) As MemberInfo()

Parameter

name
String

Die Zeichenfolge, die den Namen der abzurufenden Member enthält.

type
MemberTypes

Der zu suchende Wert.

bindingAttr
BindingFlags

Eine bitweise Kombination der Enumerationswerte, die angeben, wie die Suche durchgeführt wird.

- oder - Default, um ein leeres Array zurückzugeben.

Gibt zurück

MemberInfo[]

Ein Array von MemberInfo-Objekten, die die öffentlichen Member mit dem angegebenen Namen darstellen, sofern gefunden, andernfalls ein leeres Array.

Implementiert

Ausnahmen

name ist null.

Eine abgeleitete Klasse muss eine Implementierung bereitstellen.

Beispiele

Im folgenden Beispiel werden alle Methoden der myString Klasse angezeigt, die mit dem Buchstaben C beginnen.

void GetPublicInstanceMethodMemberInfo()
{
   String^ myString = "GetMember_String_MemberType_BindingFlag";
   Type^ myType = myString->GetType();
   
   // Get the public instance methods for myString starting with the letter C.
   array<MemberInfo^>^myMembers = myType->GetMember( "C*", MemberTypes::Method, static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance) );
   if ( myMembers->Length > 0 )
   {
      Console::WriteLine( "\nThe public instance method(s) starting with the letter C for type {0}:", myType );
      for ( int index = 0; index < myMembers->Length; index++ )
         Console::WriteLine( "Member {0}: {1}", index + 1, myMembers[ index ] );
   }
   else
      Console::WriteLine( "No members match the search criteria." );
}
    public void GetPublicInstanceMethodMemberInfo()
    {
        String myString = "GetMember_String_MemberType_BindingFlag";
        Type myType = myString.GetType();
        // Get the public instance methods for myString starting with the letter C.
        MemberInfo[] myMembers = myType.GetMember("C*", MemberTypes.Method,
            BindingFlags.Public | BindingFlags.Instance);
        if(myMembers.Length > 0)
        {
            Console.WriteLine("\nThe public instance method(s) starting with the letter C for type {0}:", myType);
            for(int index=0; index < myMembers.Length; index++)
                Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
        }
        else
        {
            Console.WriteLine("No members match the search criteria.");
        }
    }
}
member _.GetPublicInstanceMethodMemberInfo() =
    let myString = "GetMember_String_MemberType_BindingFlag"
    let myType = myString.GetType()
    // Get the public instance methods for myString starting with the letter C.
    let myMembers = myType.GetMember("C*", MemberTypes.Method, BindingFlags.Public ||| BindingFlags.Instance)
    if myMembers.Length > 0 then
        printfn $"\nThe public instance method(s) starting with the letter C for type {myType}:"
        for index = 0 to myMembers.Length - 1 do
            printfn $"Member {index + 1}: {myMembers[index]}"
    else
        printfn "No members match the search criteria."
    Public Sub GetPublicInstanceMethodMemberInfo()
        Dim myString As [String] = "GetMember_String_MemberType_BindingFlag"

        Dim myType As Type = myString.GetType()
        ' Get the public instance methods for myString starting with the letter C.
        Dim myMembers As MemberInfo() = myType.GetMember("C*", MemberTypes.Method, BindingFlags.Public Or BindingFlags.Instance)
        If myMembers.Length > 0 Then
            Console.WriteLine(ControlChars.Cr + "The public instance method(s) starting with the letter C for type {0}:", myType)
            Dim index As Integer
            For index = 0 To myMembers.Length - 1
                Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString())
            Next index
        Else
            Console.WriteLine("No members match the search criteria.")
        End If
    End Sub
End Class

Hinweise

Elemente umfassen Eigenschaften, Methoden, Felder, Ereignisse usw.

Die GetMember Methode gibt keine Elemente in einer bestimmten Reihenfolge zurück, z. B. alphabetisch oder Deklarationsreihenfolge. Ihr Code darf nicht von der Reihenfolge abhängig sein, in der Mitglieder zurückgegeben werden, da diese Reihenfolge variiert.

Die folgenden BindingFlags Filter-Flags können verwendet werden, um zu definieren, welche Elemente in die Suche einbezogen werden sollen:

  • Sie müssen entweder oder BindingFlags.Static zum Abrufen einer Rückgabe angebenBindingFlags.Instance.

  • Geben Sie an BindingFlags.Public , öffentliche Mitglieder in die Suche einzuschließen.

  • Geben Sie an BindingFlags.NonPublic , nicht öffentliche Mitglieder (z. B. private, interne und geschützte Mitglieder) in die Suche einzuschließen.

  • Geben Sie anBindingFlags.FlattenHierarchy, wie Sie die Hierarchie einschließen und protected statische Elemente einbeziehen public möchten; private statische Elemente in geerbten Klassen sind nicht enthalten.

Die folgenden BindingFlags Modifizierer-Flags können verwendet werden, um zu ändern, wie die Suche funktioniert:

  • BindingFlags.IgnoreCase so ignorieren Sie den Fall von name.

  • BindingFlags.DeclaredOnly um nur die mitglieder zu durchsuchen, die auf der Type, nicht mitglieder, die einfach geerbt wurden.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Um den Klassen initializer (statischer Konstruktor) mithilfe dieser Methodenüberladung abzurufen, müssen Sie "statischer Konstruktor" für , für name, für typeund BindingFlags.Static | (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic BindingFlags.NonPublic ) für .bindingAttrMemberTypes.Constructor Sie können auch den Klassen initializer mithilfe der TypeInitializer Eigenschaft abrufen.

Wenn der Aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo typspezifischen Parameter zurück, die durch die entsprechenden Typargumente ersetzt werden.

Wenn der Aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Elemente der Klasseneinschränkung oder die Elemente Object der Klasse, wenn keine Klasseneinschränkung vorhanden ist.

Hinweis

Für generische Methoden enthalten Sie nicht die Typargumente in name. Der C#-Code GetMember("MyMethod<int>") sucht z. B. nach einem Element mit dem Textnamen "MyMethod<int>", anstatt nach einer Methode MyMethod mit dem Namen "", die ein generisches Argument des Typs intenthält.

Siehe auch

Gilt für: