Freigeben über


TypeDelegator.InvokeMember Methode

Definition

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. Wenn eine leere Zeichenfolge ("") übergeben wird, wird der Standardmember aufgerufen.

invokeAttr
BindingFlags

Das Attribut für den Aufruf. Dabei muss es sich um eine der folgenden BindingFlags-Enumerationen handeln: InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty oder SetProperty. Es muss ein geeignetes Aufrufattribut angegeben werden. Wenn ein statischer Member aufgerufen werden soll, muss das Static-Flag festgelegt werden.

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 den Wert null aufweist, wird der Standardbinder verwendet. Siehe Binder.

target
Object

Das Objekt, für das der angegebene Member aufgerufen werden soll.

args
Object[]

Ein Array vom Typ Object, das Anzahl, Reihenfolge und Typ der Parameter des aufzurufenden Members enthält. Wenn args ein nicht initialisiertes Object enthält, wird dieses als leer behandelt und kann mit dem Standardbinder auf 0, 0.0 oder eine Zeichenfolge erweitert werden.

modifiers
ParameterModifier[]

Ein Array vom Typ ParameterModifier mit derselben Länge wie args und mit Elementen, die die Attribute darstellen, die den Argumenten des aufzurufenden Members zugeordnet sind. Ein Parameter verfügt über Attribute, die ihm in der Signatur des Members zugeordnet sind. Verwenden Sie für ByRef ParameterModifier.ByRef, für keine Attribute verwenden Sie ParameterModifier.None. Der Standardbinder sucht für diese nach genauen Entsprechungen. Attribute wie In und InOut werden bei der Bindung nicht verwendet und können mithilfe von ParameterInfo angezeigt werden.

culture
CultureInfo

Eine Instanz von CultureInfo für die Steuerung der Umwandlung von Typen. Dies ist erforderlich, um z. B. eine Zeichenfolge, die die Zahl 1000 darstellt, in einen Double-Wert zu konvertieren, da die Zahl 1000 in den verschiedenen Kulturen unterschiedlich dargestellt wird.) Wenn culture den Wert null hat, wird die CultureInfo für die CultureInfo des aktuellen Threads verwendet.

namedParameters
String[]

Dies ist ein Zeichenfolgenarray, das Parameternamen enthält, die ab dem Element 0 mit dem args-Array übereinstimmen. Das Array darf keine Lücken aufweisen. Wenn args. Length ist größer als namedParameters. Length, die verbleibenden Parameter werden der Reihenfolge nach aufgefüllt.

Gibt zurück

Ein Object, das den Rückgabewert des aufgerufenen Members darstellt.

Hinweise

Eine -Methode wird aufgerufen, wenn die beiden folgenden Bedingungen erfüllt sind:

  • Die Anzahl der Parameter in der Methodendeklaration entspricht der Anzahl von Argumenten in der angegebenen Argumentliste (es sei denn, Standardargumente sind für das Element definiert).

  • Der Typ der einzelnen Argumente kann vom Binder in den Typ des Parameters konvertiert werden.

Der Binder findet alle übereinstimmenden Methoden. Diese Methoden werden basierend auf dem Typ der angeforderten Bindung (BindingFlags.MethodInvoke, BindingFlags.GetPropertiesusw.) gefunden. 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, welcher Satz von Methoden basierend auf dem der Methode zugeordneten Barrierefreiheitsattribut durchsucht wird. Die Binder.BindToMethod -Methode ist für die Auswahl der methode verantwortlich, die aufgerufen werden soll. Der Standardbinder wählt die spezifischste Übereinstimmung aus.

Hinweis

Zugriffseinschrä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.

InvokeMember Derzeit führt die Microsoft .NET Framework-Reflektionsemantik für jeden Objekttyp aus.

Wenn das durch den Namen angegebene Element ein Array ist und das BindingFlags.GetField Flag auf invokeAttrfestgelegt ist, gibt das args Array die Elemente an, deren Werte zurückgegeben werden sollen. Das folgende Durchrufobjekt Typet gibt beispielsweise den Wert des ersten Elements des Zeichenfolgenarrays MyArray zurück, das ein Member des aufrufenden Objekts ist:

String ret = (String) t.InvokeMember ("MyArray", BindingFlags.GetField, null, this, new Variant[]{0});

Sie können verwenden InvokeMember , um ein oder mehrere Elemente eines Memberarrays festzulegen. Alle Elemente sind auf den gleichen Wert festgelegt. Das args Array muss wie folgt formatiert sein:

{index1,  
    index2,, value}  

Um beispielsweise das erste Element von MyArray aus dem vorherigen Beispiel festzulegen, lautet die Syntax wie folgt:

t.InvokeMember ("MyArray", BindingFlags.SetField, null, this, new  
    Variant[]{0,"Updated"});  

Gilt für:

Weitere Informationen