Binder.BindToMethod 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.
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.