Binder.BindToMethod Metodo

Definizione

Seleziona un metodo da richiamare dal gruppo di metodi indicato sulla base degli argomenti forniti.

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

Parametri

bindingAttr
BindingFlags

Combinazione bit per bit dei valori di BindingFlags.

match
MethodBase[]

Gruppo di metodi candidati per la corrispondenza. Quando ad esempio l'oggetto Binder viene utilizzato dall'overload InvokeMember, questo parametro specifica il gruppo di metodi individuati come possibili corrispondenze da reflection, in genere perché sono contraddistinti dal nome di membro corretto. L'implementazione predefinita fornita dalla proprietà DefaultBinder modifica l'ordine di questa matrice.

args
Object[]

Gli argomenti passati. Il gestore di associazione può cambiare l'ordine degli argomenti in questa matrice, ad esempio modificando l'ordine degli argomenti se si utilizza il parametro names per specificare un ordine diverso da quello posizionale. Se un'implementazione del gestore di associazione prevede l'assegnazione dei tipi di argomento, sarà possibile modificare anche i tipi e i valori degli argomenti.

modifiers
ParameterModifier[]

Matrice di modificatori di parametro che consentono di utilizzare l'associazione con le firme di parametro in cui sono stati modificati i tipi. Questo parametro non viene utilizzato nell'implementazione predefinita del gestore di associazione.

culture
CultureInfo

Istanza della classe CultureInfo utilizzata per controllare l'assegnazione dei tipi di dati in implementazioni del gestore di associazione che prevedono l'assegnazione dei tipi. Se culture è null, per il thread corrente verrà usato l'oggetto CultureInfo.

names
String[]

Nomi di parametro, se i nomi di parametro devono essere tenuti in considerazione durante al corrispondenza, oppure null se gli argomenti devono essere considerati come puramente posizionali. È ad esempio necessario utilizzare i nomi di parametro se gli argomenti non vengono forniti nell'ordine posizionale.

state
Object

Dopo la restituzione del metodo, il parametro state contiene un oggetto fornito dal gestore di associazione che tiene traccia del riordino degli argomenti. Il gestore di associazione crea questo oggetto e ne è l'unico consumer. Se il valore del parametro state non è null quando viene restituito BindToMethod, sarà necessario passare state al metodo ReorderArgumentArray(Object[], Object) se si desidera ripristinare l'ordine originale del parametro args, in modo che ad esempio sia possibile recuperare i valori dei parametri ref (parametri ByRef in Visual Basic).

Restituisce

Metodo corrispondente.

Eccezioni

Per il gestore di associazione predefinito, il parametro match contiene più metodi che rappresentano corrispondenze ugualmente valide per il parametro args. Ad esempio, args contiene un MyClass oggetto che implementa l'interfaccia IMyClass e match contiene un metodo che accetta MyClass e un metodo che accetta IMyClass.

Per il gestore di associazione predefinito, il parametro match non contiene metodi che possono accettare gli argomenti forniti nel parametro args.

Per il gestore di associazione predefinito, il valore del parametro match è null o una matrice vuota.

Commenti

Il gestore di associazione predefinito tiene conto di entrambi i parametri con valori e params matrici (ParamArray matrici in Visual Basic). Pertanto, è possibile trovare una corrispondenza nei casi in cui args e match non contengono lo stesso numero di elementi.

Il gestore di associazione consente a un client di eseguire il mapping della matrice di argomenti al formato originale se la matrice di argomenti è stata modificata da BindToMethod. Usare questa funzionalità di rieseguire il mapping per recuperare gli argomenti per riferimento quando sono presenti argomenti di questo tipo. Quando si passano argomenti per nome, il binder riordina la matrice di argomenti. Il state parametro tiene traccia del riordinamento degli argomenti, consentendo così al metodo del gestore di ReorderArgumentArray associazione di riordinare la matrice di argomenti nel formato originale.

Il BindToMethod metodo viene utilizzato dal Type.InvokeMember metodo .

Se un'implementazione di binder consente la coercizione dei valori stringa in tipi numerici, il culture parametro è necessario per convertire una stringa che rappresenta 1000 in un Double valore, perché 1000 è rappresentato in modo diverso da impostazioni cultura diverse. Con il gestore di associazione predefinito non sono previste tali assegnazioni di stringhe.

Si applica a

Vedi anche