TypeBuilder.InvokeMember 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 den angegebenen Member auf. Die Methode, die aufgerufen werden soll, muss zugänglich sein und mit der angegebenen Argumentliste unter den Einschränkungen des angegebenen Binders und der Aufrufattribute die spezifischste Übereinstimmung bereitstellen.
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);
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);
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 aufzurufenden Members. Dies kann ein Konstruktor, eine Methode, eine Eigenschaft oder ein Feld sein. Es muss ein geeignetes Aufrufattribut angegeben werden. Beachten Sie, dass es möglich ist, den Standardmember einer Klasse aufzurufen, indem Sie eine leere Zeichenfolge als Name des Members übergeben.
- invokeAttr
- BindingFlags
Das Attribut für den Aufruf. Dies muss ein Bitflag aus BindingFlags
sein.
- binder
- Binder
Ein Objekt, das die Bindung, die Umwandlung von Argumenttypen, das Aufrufen von Membern und das Abrufen von MemberInfo
-Objekten über Reflektion ermöglicht. Wenn „binder“ gleich null
ist, wird der Standardbinder verwendet. Siehe Binder.
- target
- Object
Das Objekt, für das der angegebene Member aufgerufen werden soll. Wenn der Member 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 aufzurufenden Members enthält. Wenn keine Parameter vorhanden sind, muss dies gleich NULL sein.
- modifiers
- ParameterModifier[]
Ein Array derselben Länge wie args
mit Elementen, die die Argumente darstellen, die den Argumenten des aufzurufenden Members zugeordnet sind. Ein Parameter verfügt über Attribute, die ihm in den Metadaten zugeordnet werden. Sie werden von verschiedenen Interoperabilitätsdiensten verwendet. Weitere Informationen finden Sie in den Metadatenspezifikationen.
- culture
- CultureInfo
Eine Instanz von CultureInfo
für die Steuerung der Umwandlung von Typen. Ist diese gleich NULL, wird das CultureInfo
-Objekt des aktuellen Threads verwendet. (Dies ist z. B. erforderlich, um eine Zeichenfolge, die 1000 darstellt, in einen Double-Wert zu konvertieren, da 1000 in verschiedenen 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 von args
größer als die Länge von namedParameters
ist, werden die restlichen Argumentwerte in der Reihenfolge übergeben.
Gibt zurück
Gibt den Rückgabewert des aufgerufenen Members zurück.
Ausnahmen
Diese Methode wird bei unvollständigen Typen derzeit nicht unterstützt.
Hinweise
Eine Methode wird aufgerufen, wenn die Anzahl der Parameter in der Methodendeklaration gleich der Anzahl der Argumente in der angegebenen Argumentliste ist und der Typ jedes Arguments vom Binder in den Typ des Parameters konvertiert werden kann.
Der Binder findet alle übereinstimmenden Methoden. Diese Methoden werden basierend auf dem angeforderten Bindungstyp 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 Binder definiert sind. Nachdem die Methode ausgewählt wurde, wird sie aufgerufen. Die Barrierefreiheit wird an diesem Punkt überprüft. Die Suche kann steuern, welche Methoden basierend auf dem der Methode zugeordneten Barrierefreiheitsattribut durchsucht werden. Die IBinder.BindToMethod
-Methode ist für die Auswahl der methode verantwortlich, die aufgerufen werden soll. Der Standardbinder wählt die spezifischste Übereinstimmung aus.
Hinweis
Zugriffsbeschränkungen werden für vollständig vertrauenswürdigen Code ignoriert. Das heißt, private Konstruktoren, Methoden, Felder und Eigenschaften können mithilfe von Reflektion aufgerufen und aufgerufen werden, wenn der Code vollständig vertrauenswürdig ist.
Diese Methode wird zurzeit nicht unterstützt. Sie können den Typ mit Type.GetType oder Assembly.GetType abrufen und reflektion für den abgerufenen Typ verwenden.