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 Member 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 name nach Groß-/Kleinschreibung wird beachtet. Die Suche enthält öffentliche statische und öffentliche Instanzenelemente.

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ängen, in der Mitglieder zurückgegeben werden, da diese Reihenfolge unterschiedlich ist.

Diese Methodenüberladung findet keine Klasseninitializer (statischer Konstruktor). Um Klasseninitializer zu finden, verwenden Sie eine Überladung, die verwendet BindingFlagswird, und geben Sie | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic) an.BindingFlags.Static Sie können auch den Klasseninitializer 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 statisch
Konstruktor Nein Nein
Feld Nein Ja. Ein Feld ist immer nach Name und Signatur ausgeblendet.
Ereignis Nicht zutreffend Die allgemeine Typsystemregel besteht darin, dass die Vererbung mit den Methoden identisch ist, die die Eigenschaft implementieren. Reflection behandelt Eigenschaften als Hide-by-name-and-signature. Siehe Hinweis 2 unten.
Methode Nein Ja. Eine Methode (sowohl virtuelle als auch nicht virtuelle) kann nach Name oder Nachname ausgeblendet oder nach Name und Signatur ausgeblendet werden.
Geschachtelter Typ Nein Nein
Eigenschaft Nicht zutreffend Die allgemeine Typsystemregel besteht darin, dass die Vererbung mit den Methoden identisch ist, die die Eigenschaft implementieren. Reflection behandelt Eigenschaften als Hide-by-name-and-signature. 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 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 über einen Get-Accessor verfügt, blendet die abgeleitete Klasseneigenschaft die Basisklasseneigenschaft 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 durch die entsprechenden Typargumente ersetzten Typparameter zurück.

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

Hinweis

Fügen Sie bei generischen Methoden 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 einem generischen Argument vom Typ int.

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 Klasse angezeigt, die myString 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ängen, in der Mitglieder zurückgegeben werden, da diese Reihenfolge unterschiedlich ist.

Die folgenden BindingFlags Filterkennzeichnungen können verwendet werden, um zu definieren, welche Member in die Suche einbezogen werden sollen:

  • Sie müssen eine BindingFlags.Instance oder BindingFlags.Static eine Rückgabe angeben.

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

  • Geben Sie BindingFlags.NonPublic an, dass nicht öffentliche Mitglieder (also private, interne und geschützte Mitglieder) in die Suche einbezogen werden sollen.

  • Geben Sie BindingFlags.FlattenHierarchy an, dass Elemente der Hierarchie eingeschlossen public und protected statisch sind. private Statische Elemente in geerbten Klassen sind nicht enthalten.

Die folgenden BindingFlags Modifiziererkennzeichnungen können verwendet werden, um die Funktionsweise der Suche zu ändern:

  • BindingFlags.IgnoreCase um den Fall von name.

  • BindingFlags.DeclaredOnly um nur die Mitglieder zu durchsuchen, die für die TypeMitglieder deklariert wurden , nicht mitglieder, die einfach geerbt wurden.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

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

Wenn der Aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo durch die entsprechenden Typargumente ersetzten Typparameter zurück.

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

Hinweis

Fügen Sie bei generischen Methoden 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 einem generischen Argument vom Typ int.

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ängen, in der Mitglieder zurückgegeben werden, da diese Reihenfolge unterschiedlich ist.

Die folgenden BindingFlags Filterkennzeichnungen können verwendet werden, um zu definieren, welche Member in die Suche einbezogen werden sollen:

  • Sie müssen eine BindingFlags.Instance oder BindingFlags.Static eine Rückgabe angeben.

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

  • Geben Sie BindingFlags.NonPublic an, dass nicht öffentliche Mitglieder (also private, interne und geschützte Mitglieder) in die Suche einbezogen werden sollen.

  • Geben Sie BindingFlags.FlattenHierarchy an, dass Elemente der Hierarchie eingeschlossen public und protected statisch sind. private Statische Elemente in geerbten Klassen sind nicht enthalten.

Die folgenden BindingFlags Modifiziererkennzeichnungen können verwendet werden, um die Funktionsweise der Suche zu ändern:

  • BindingFlags.IgnoreCase um den Fall von name.

  • BindingFlags.DeclaredOnly um nur die Mitglieder zu durchsuchen, die für die TypeMitglieder deklariert wurden , nicht mitglieder, die einfach geerbt wurden.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Um den Klasseninitializer (statischer Konstruktor) mithilfe dieser Methodenüberladung abzurufen, müssen Sie "statischer Konstruktor" für , für und | (BindingFlags.NonPublicBindingFlags.StaticOr in Visual Basic BindingFlags.NonPublic ) für .bindingAttrBindingFlags.Static typeMemberTypes.Constructor name Sie können auch den Klasseninitializer mithilfe der TypeInitializer Eigenschaft abrufen.

Wenn der Aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die MemberInfo durch die entsprechenden Typargumente ersetzten Typparameter zurück.

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

Hinweis

Fügen Sie bei generischen Methoden 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 einem generischen Argument vom Typ int.

Siehe auch

Gilt für: