TypeBuilder.InvokeMember Methode

Definition

Ruft das angegebene Element auf. Die methode, die aufgerufen werden soll, muss barrierefrei sein und die spezifischste Übereinstimmung mit der angegebenen Argumentliste bereitstellen, unter den Einschränkungen der angegebenen Ordner- und Aufrufattribute.

public:
 override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)]
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)]
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object

Parameter

name
String

Der Name des elements, das aufgerufen werden soll. Dies kann ein Konstruktor, eine Methode, eine Eigenschaft oder ein Feld sein. Es muss ein geeignetes Aufruf-Attribut angegeben werden. Beachten Sie, dass es möglich ist, das Standardelement einer Klasse aufzurufen, indem eine leere Zeichenfolge als Name des Elements übergeben wird.

invokeAttr
BindingFlags

Das Aufruf-Attribut. Dies muss ein Bit-Flag von BindingFlags.

binder
Binder

Ein Objekt, das die Bindung, die Koersion von Argumenttypen, den Aufruf von Membern und das Abrufen von MemberInfo Objekten mithilfe von Spiegelung ermöglicht. Wenn ordner ist null, wird der Standardbinder verwendet. Siehe Binder.

target
Object

Das Objekt, für das das angegebene Element aufgerufen werden soll. Wenn das Element statisch ist, wird dieser Parameter ignoriert.

args
Object[]

Eine Argumentliste. Dies ist ein Array von Objekten, das die Anzahl, Reihenfolge und den Typ der Parameter des zu aufrufenden Elements enthält. Wenn keine Parameter vorhanden sind, sollte dies null sein.

modifiers
ParameterModifier[]

Ein Array der gleichen Länge wie args bei Elementen, die die Attribute darstellen, die den Argumenten des Elements zugeordnet sind, die aufgerufen werden sollen. Ein Parameter verfügt über Attribute, die dieser in den Metadaten zugeordnet sind. Sie werden von verschiedenen Interoperabilitätsdiensten verwendet. Weitere Details finden Sie in den Metadatenspezifikationen.

culture
CultureInfo

Eine Instanz, die zum Steuern der CultureInfo Koersion von Typen verwendet wird. Wenn dies null ist, wird der CultureInfo aktuelle Thread verwendet. (Beachten Sie, dass dies erforderlich ist, um z. B. eine Zeichenfolge, die 1000 darstellt, in einen Double-Wert zu konvertieren, da 1000 durch verschiedene Kulturen unterschiedlich dargestellt wird.)

namedParameters
String[]

Jeder Parameter im namedParameters Array ruft den Wert im entsprechenden Element im args Array ab. Wenn die Länge args größer als die Länge des namedParametersArguments ist, werden die verbleibenden Argumentwerte in der reihenfolge übergeben.

Gibt zurück

Gibt den Rückgabewert des aufgerufenen Elements zurück.

Attribute

Ausnahmen

Diese Methode wird für unvollständige Typen derzeit nicht unterstützt.

Hinweise

Eine Methode wird aufgerufen, wenn die Anzahl der Parameter in der Methodendeklaration der Anzahl der Argumente in der angegebenen Argumentliste entspricht, und der Typ der einzelnen Argumente kann vom Ordner in den Typ des Parameters konvertiert werden.

Der Sammelordner findet alle passenden Methoden. Diese Methoden werden basierend auf dem Typ der angeforderten Bindung gefunden (BindingFlags.InvokeMethod, BindingFlags.GetProperties usw.). Der Satz von Methoden wird nach dem Namen, der Anzahl der Argumente und einer Reihe von Suchmodifizierern gefiltert, die im Sammelordner definiert sind. Nachdem die Methode ausgewählt wurde, wird sie aufgerufen. Die Barrierefreiheit wird zu diesem Zeitpunkt überprüft. Die Suche kann steuern, welche Methodengruppen anhand des Barrierefreiheitsattributs gesucht werden, das der Methode zugeordnet ist. Die IBinder.BindToMethod Methode ist für die Auswahl der aufgerufenen Methode verantwortlich. Der Standardbinder wählt die spezifischste Übereinstimmung aus.

Note

Zugriffsbeschränkungen werden für voll vertrauenswürdigen Code ignoriert. Das heißt, auf private Konstruktoren, Methoden, Felder und Eigenschaften kann mithilfe von Reflection zugegriffen und aufgerufen werden, wenn der Code vollständig vertrauenswürdig ist.

Diese Methode wird derzeit nicht unterstützt. Sie können den Typ mithilfe Type.GetType oder Assembly.GetType mithilfe von Spiegelung für den abgerufenen Typ abrufen.

Gilt für: