Freigeben über


Type.GetMethodImpl-Methode

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen und der angegebenen Aufrufkonvention nach der angegebenen Methode, deren Parameter den angegebenen Argumenttypen und -modifizierern entsprechen.

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

Syntax

'Declaration
Protected MustOverride Function GetMethodImpl ( _
    name As String, _
    bindingAttr As BindingFlags, _
    binder As Binder, _
    callConvention As CallingConventions, _
    types As Type(), _
    modifiers As ParameterModifier() _
) As MethodInfo
'Usage
Dim name As String
Dim bindingAttr As BindingFlags
Dim binder As Binder
Dim callConvention As CallingConventions
Dim types As Type()
Dim modifiers As ParameterModifier()
Dim returnValue As MethodInfo

returnValue = Me.GetMethodImpl(name, bindingAttr, binder, callConvention, types, modifiers)
protected abstract MethodInfo GetMethodImpl (
    string name,
    BindingFlags bindingAttr,
    Binder binder,
    CallingConventions callConvention,
    Type[] types,
    ParameterModifier[] modifiers
)
protected:
virtual MethodInfo^ GetMethodImpl (
    String^ name, 
    BindingFlags bindingAttr, 
    Binder^ binder, 
    CallingConventions callConvention, 
    array<Type^>^ types, 
    array<ParameterModifier>^ modifiers
) abstract
protected abstract MethodInfo GetMethodImpl (
    String name, 
    BindingFlags bindingAttr, 
    Binder binder, 
    CallingConventions callConvention, 
    Type[] types, 
    ParameterModifier[] modifiers
)
protected abstract function GetMethodImpl (
    name : String, 
    bindingAttr : BindingFlags, 
    binder : Binder, 
    callConvention : CallingConventions, 
    types : Type[], 
    modifiers : ParameterModifier[]
) : MethodInfo

Parameter

  • name
    Der String, der den Namen der abzurufenden Methode enthält.
  • bindingAttr
    Eine Bitmaske aus einem oder mehreren BindingFlags, die angeben, wie die Suche durchgeführt wird.

    – oder –

    0 (null), damit NULL (Nothing in Visual Basic) zurückgegeben wird.

  • binder
    Ein Binder-Objekt, das eine Gruppe von Eigenschaften definiert und eine Bindung ermöglicht. Dazu können die Auswahl einer überladenen Methode, die Umwandlung von Argumenttypen und der Aufruf eines Members durch Reflektion gehören.

    – oder –

    NULL (Nothing in Visual Basic), wenn der DefaultBinder verwendet werden soll.

  • callConvention
    Das CallingConventions-Objekt, das die Regeln für Reihenfolge und Layout der Argumente, die Art der Übergabe des Rückgabewerts, die für Argumente zu verwendenden Register und den Prozess angibt, der den Stapel bereinigt.
  • types
    Ein Array von Type-Objekten, das die Anzahl, die Reihenfolge und den Typ der Parameter der abzurufenden Methode darstellt.

    - oder -

    Ein leeres Array vom Type-Typ, d. h. Type[] types = new Type[0], zum Abrufen einer Methode, die keine Parameter akzeptiert.

    - oder -

    NULL (Nothing in Visual Basic). Wenn typesNULL (Nothing in Visual Basic) ist, wird keine Übereinstimmung von Argumenten überprüft.

  • modifiers
    Ein Array von ParameterModifier-Objekten, die die Attribute darstellen, die dem entsprechenden Element im types-Array zugeordnet sind. Der Standardbinder verarbeitet diesen Parameter nicht.

Rückgabewert

Ein MethodInfo-Objekt, das die Methode darstellt, die den angegebenen Anforderungen entspricht, sofern diese gefunden wird. Andernfalls NULL (Nothing in Visual Basic).

Ausnahmen

Ausnahmetyp Bedingung

AmbiguousMatchException

Es wurde mehr als eine Methode mit dem angegebenen Namen gefunden, die den angegebenen Bindungseinschränkungen entspricht.

ArgumentNullException

name ist NULL (Nothing in Visual Basic).

ArgumentException

types ist mehrdimensional.

– oder –

modifiers ist mehrdimensional.

– oder –

types und modifiers haben nicht dieselbe Länge.

Hinweise

Obwohl der Standardbinder ParameterModifier (den modifiers-Parameter) nicht verarbeitet, können Sie die abstrakte System.Reflection.Binder-Klasse zum Schreiben eines benutzerdefinierten Binders verwenden, der modifiers verarbeitet. ParameterModifier wird nur in Verbindung mit COM-Interop-Aufrufen verwendet, und es werden nur Parameter verarbeitet, die als Verweis übergeben werden.

Wenn typesNULL (Nothing in Visual Basic) ist, wird keine Übereinstimmung von Argumenten überprüft.

Das types-Array und das modifiers-Array haben dieselbe Länge. Ein im types-Array angegebener Parameter kann die folgenden im modifiers-Array definierten Attribute besitzen: pdIn, pdOut, pdLcid, pdRetval, pdOptional und pdHasDefault, die [In], [Out], [lcid], [retval], [optional] und einen Wert darstellen, der angibt, ob der Parameter über einen Standardwert verfügt. Die einem Parameter zugeordneten Attribute werden in den Metadaten gespeichert. Sie verbessern die Interoperabilität.

Über die folgenden BindingFlags-Filterflags kann festgelegt werden, welche Methoden in die Suche einbezogen werden:

  • Es wird nur dann ein Ergebnis zurückgegeben, wenn entweder BindingFlags.Instance oder BindingFlags.Static angegeben wird.

  • Geben Sie BindingFlags.Public an, um öffentliche Methoden in die Suche einzubeziehen.

  • Geben Sie BindingFlags.NonPublic an, um nicht öffentliche Methoden, d. h. private und geschützte Member, in die Suche einzubeziehen.

  • Geben Sie BindingFlags.FlattenHierarchy an, um statische public-Member und protected-Member in der Hierarchie einzuschließen. Statische private-Member in vererbten Klassen sind nicht eingeschlossen.

Die Funktionsweise der Suche kann über die folgenden BindingFlags-Modifiziererflags beeinflusst werden:

  • BindingFlags.IgnoreCase, wenn die Groß- und Kleinschreibung von name nicht berücksichtigt werden soll.

  • BindingFlags.DeclaredOnly, wenn ausschließlich nach für Type deklarierten Methoden gesucht werden soll und nicht nach Methoden, die nur geerbt wurden.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Diese Methode gibt NULL (Nothing in Visual Basic) zurück, wenn der angeforderte Typ nicht öffentlich ist und der Aufrufer keine ReflectionPermission zum Reflektieren nicht öffentlicher Objekte außerhalb der aktuellen Assembly besitzt.

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Type-Klasse
Type-Member
System-Namespace
MethodInfo
String-Klasse
BindingFlags
Binder
DefaultBinder
CallingConventions
ParameterModifier
ReflectionPermission
GetMethod
GetMethods