Type.GetMember Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.StaticOr
BindingFlags.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. |
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.
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.
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
- MemberInfo
- String
- DefaultBinder
- GetMembers()
- GetDefaultMembers()
- FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)
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
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
oderBindingFlags.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 eingeschlossenpublic
undprotected
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 vonname
.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
- MemberInfo
- String
- BindingFlags
- DefaultBinder
- GetMembers()
- GetDefaultMembers()
- FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)
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
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
oderBindingFlags.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 eingeschlossenpublic
undprotected
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 vonname
.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 .bindingAttr
BindingFlags.Static type
MemberTypes.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
- MemberInfo
- String
- BindingFlags
- DefaultBinder
- GetMembers()
- GetDefaultMembers()
- FindMembers(MemberTypes, BindingFlags, MemberFilter, Object)