Binder.BindToMethod Methode

Definition

Wählt eine Methode aus, die aus der angegebenen Gruppe von Methoden aufgerufen werden soll, basierend auf den angegebenen Argumenten.

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);
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[]

Der Satz von Methoden, die für den Abgleich geeignet sind. Wenn z. B. ein Binder Objekt von InvokeMemberverwendet wird, gibt dieser Parameter den Satz von Methoden an, die als mögliche Übereinstimmungen bestimmt wurden, in der Regel, weil sie den richtigen Membernamen aufweisen. Die von dieser Matrix bereitgestellte DefaultBinder Standardimplementierung ändert die Reihenfolge dieses Arrays.

args
Object[]

Die Argumente, die übergeben werden. Die Sammelmappe kann die Reihenfolge der Argumente in diesem Array ändern; Beispielsweise ändert der Standardordner die Reihenfolge der Argumente, wenn der names Parameter verwendet wird, um eine andere Reihenfolge als positionale Reihenfolge anzugeben. Wenn eine Sammelmappenimplementierung Argumenttypen umwandelt, können auch die Typen und Werte der Argumente geändert werden.

modifiers
ParameterModifier[]

Ein Array von Parametermodifizierern, mit denen die Bindung mit Parametersignaturen funktioniert, in denen die Typen geändert wurden. Die Standardmappenimplementierung verwendet diesen Parameter nicht.

culture
CultureInfo

Eine Instanz davon CultureInfo wird verwendet, um die Koersion von Datentypen zu steuern, in Sammelmappenimplementierungen, die Typen koerzen. Ist culture dies nullder Grund, wird der CultureInfo aktuelle Thread verwendet.

names
String[]

Die Parameternamen, wenn Parameternamen beim Abgleich berücksichtigt werden sollen oder null argumente als rein positional behandelt werden sollen. Parameternamen müssen z. B. verwendet werden, wenn Argumente nicht in positionaler Reihenfolge angegeben werden.

state
Object

Nachdem die Methode zurückgegeben wurde, enthält sie ein vom Ordner bereitgestelltes Objekt, state das die Neuanordnung des Arguments nachverfolgt. Der Sammelordner erstellt dieses Objekt, und der Ordner ist der einzige Verbraucher dieses Objekts. Wenn state nicht null ist, wenn BindToMethod zurückgegeben wird, Sie müssen state an die methode ReorderArgumentArray(Object[], Object) übergeben, wenn Sie args in der ursprünglichen Reihenfolge wiederherstellen möchten, z. B. damit Sie die Werte von refParametern abrufen können (ByRef Parameter in Visual Basic).

Gibt zurück

Die übereinstimmende Methode.

Ausnahmen

Enthält für den Standardordner mehrere Methoden, match die gleichermaßen gut übereinstimmen für args. Enthält z. B. ein Objekt, args das die IMyClass Schnittstelle implementiert, und match enthält eine Methode, die MyClass verwendet wird, und eine Methode, die verwendet IMyClassMyClass wird.

Enthält für den Standardordner keine Methoden, match die die in args.

Für den Standardordner match ist null oder ein leeres Array vorhanden.

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 und match nicht dieselbe Anzahl von Elementen enthalten.

Der Sammelordner ermöglicht es einem Client, das Array von Argumenten wieder seiner ursprünglichen Form zuzuordnen, wenn das Argumentarray von BindToMethodbearbeitet wurde. Verwenden Sie diese Remap-Funktion, um Nachverweisargumente zurückzuholen, wenn solche Argumente vorhanden sind. Wenn Sie Argumente anhand des Namens übergeben, sortiert der Sammelordner das Argumentarray neu. Der state Parameter verfolgt die Neuanordnung von Argumenten, wodurch die Methode des Sammelordners ReorderArgumentArray die Neuanordnung des Argumentarrays auf die ursprüngliche Form ermöglicht.

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

Wenn eine Binderimplementierung die Koersion 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 Standardordner führt solche Zeichenfolgenkoerionen nicht durch.

Gilt für:

Weitere Informationen