Binder.BindToMethod Methode

Definition

Wählt eine aufzurufende Methode anhand der bereitgestellten Argumente aus der angegebenen Gruppe von Methoden aus.

public:
 abstract System::Reflection::MethodBase ^ BindToMethod(System::Reflection::BindingFlags bindingAttr, cli::array <System::Reflection::MethodBase ^> ^ match, cli::array <System::Object ^> ^ % args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ names, [Runtime::InteropServices::Out] System::Object ^ % state);
public abstract System.Reflection.MethodBase BindToMethod (System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object?[] args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? names, out object? state);
public abstract System.Reflection.MethodBase BindToMethod (System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state);
abstract member BindToMethod : System.Reflection.BindingFlags * System.Reflection.MethodBase[] * Object[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] * obj -> System.Reflection.MethodBase
Public MustOverride Function BindToMethod (bindingAttr As BindingFlags, match As MethodBase(), ByRef args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, names As String(), ByRef state As Object) As MethodBase

Parameter

bindingAttr
BindingFlags

Eine bitweise Kombination von BindingFlags-Werten.

match
MethodBase[]

Die Reihe der Methoden, die Kandidaten für Übereinstimmungen sind. Wenn beispielsweise ein Binder-Objekt von InvokeMember verwendet wird, gibt dieser Parameter die Reihe von Methoden an, die von der Reflektion als mögliche Übereinstimmungen bestimmt wurden, typischerweise weil sie den entsprechenden Membernamen aufweisen. Die von DefaultBinder bereitgestellte Standardimplementierung ändert die Reihenfolge dieses Arrays.

args
Object[]

Die übergebenen Argumente. Der Binder kann die Reihenfolge der Argumente in diesem Array ändern. Der Standardbinder ändert beispielsweise die Reihenfolge der Argumente, wenn mit dem names-Parameter eine andere Reihenfolge als eine positionelle Reihenfolge angegeben wird. Wenn eine Binderimplementierung Argumenttypen umwandelt, können auch die Typen und Werte der Argumente geändert werden.

modifiers
ParameterModifier[]

Ein Array von Parametermodifizierern, die bei Bindungen die Verwendung von Parametersignaturen ermöglichen, in denen die Typen geändert wurden. Dieser Parameter wird von der Standardbinderimplementierung nicht verwendet.

culture
CultureInfo

Eine Instanz von CultureInfo, mit der in Binderimplementierungen mit Typumwandlungen die Umwandlung von Datentypen gesteuert wird. Wenn culture den Wert null hat, wird die CultureInfo des aktuellen Threads verwendet.

names
String[]

Die Parameternamen, wenn Parameternamen bei Zuordnungen berücksichtigt werden müssen, oder null, wenn Argumente als rein positionell behandelt werden müssen. Parameternamen müssen beispielsweise verwendet werden, wenn Argumente nicht in positioneller Reihenfolge angegeben sind.

state
Object

Nach der Rückgabe der Methode enthält state ein vom Binder bereitgestelltes Objekt, das die Änderung der Reihenfolge von Argumenten verfolgt. Der Binder erstellt dieses Objekt und ist der einzige Consumer dieses Objekts. Wenn state bei der Rückgabe von null nicht BindToMethod ist, müssen Sie state an die ReorderArgumentArray(Object[], Object)-Methode übergeben, wenn Sie args mit der ursprünglichen Reihenfolge wiederherstellen möchten, damit Sie beispielsweise die Werte von ref-Parametern (ByRef-Parametern in Visual Basic) abrufen können.

Gibt zurück

MethodBase

Die entsprechende Methode.

Ausnahmen

Für den Standardbinder enthält match mehrere Methoden, die gleichwertige Übereinstimmungen für args darstellen. args enthält beispielsweise ein MyClass-Objekt, das die IMyClass-Schnittstelle implementiert, und match enthält eine Methode, die MyClass annimmt, sowie eine Methode, die IMyClass annimmt.

Für den Standardbinder enthält match keine Methoden, die die in args bereitgestellten Argumente annehmen können.

Für den Standardbinder ist match gleich null oder ein leeres Array.

Hinweise

Der Standardordner berücksichtigt beide Parameter mit Werten und params Arrays (ParamArray Arrays in Visual Basic). Daher ist es möglich, eine Übereinstimmung in Fällen zu finden, in denen args die gleiche Anzahl von Elementen nicht enthalten ist match .

Mit dem Ordner kann ein Client das Array von Argumenten wieder seinem ursprünglichen Formular zuordnen, wenn das Argumentarray von BindToMethodbearbeitet wurde. Verwenden Sie diese Neuzuordnungsfunktion, um Nachverweisargumente zurückzuholen, wenn solche Argumente vorhanden sind. Wenn Sie Argumente nach Namen übergeben, wird der Ordner das Argumentarray neu anordnen. Der state Parameter verfolgt die Neuanordnung des Arguments, wodurch die Methode des Ordners ReorderArgumentArray die Neuanordnung des Argumentarrays in sein ursprüngliches Formular ermöglicht.

Die BindToMethod Methode wird von der Type.InvokeMember Methode verwendet.

Wenn eine Binderimplementierung die Koercion von Zeichenfolgenwerten zu numerischen Typen zulässt, ist der culture Parameter erforderlich, um eine Zeichenfolge zu konvertieren, die 1000 in einen Double Wert darstellt, da 1000 unterschiedlich durch verschiedene Kulturen dargestellt wird. Der Standardbinder führt keine solchen Zeichenfolgenumwandlungen aus.

Gilt für

Siehe auch