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