Freigeben über


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

Die entsprechende Methode.

Ausnahmen

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

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 Standardbinder berücksichtigt sowohl Parameter mit Werten als params auch Arrays (ParamArray Arrays in Visual Basic). Daher ist es möglich, eine Übereinstimmung in Fällen zu finden, in denen args und match nicht die gleiche Anzahl von Elementen enthalten.

Der Binder ermöglicht es einem Client, das Array von Argumenten seiner ursprünglichen Form zuzuordnen, wenn das Argumentarray von BindToMethodbearbeitet wurde. Verwenden Sie diese Neuzuordnungsfunktion, um Nachverweisargumente zurückzuholen, wenn solche Argumente vorhanden sind. Wenn Sie Argumente anhand des Namens übergeben, ordnet der Binder das Argumentarray neu an. Der state -Parameter verfolgt die Neuanordnung von Argumenten nach, sodass die -Methode des Binders ReorderArgumentArray das Argumentarray in seine ursprüngliche Form neu anordnen kann.

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

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

Gilt für:

Weitere Informationen