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 oggetto che implementa l'interfaccia IMyClass e match contiene un MyClass 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 binder 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 binder consente a un client di eseguire il mapping della matrice di argomenti al relativo modulo originale se la matrice di argomenti è stata modificata da BindToMethod. Usare questa funzionalità di mapping per recuperare gli argomenti di riferimento quando tali argomenti sono presenti. Quando si passano argomenti per nome, il bindinger riordina la matrice di argomenti. Il state parametro mantiene traccia della riordinazione degli argomenti, consentendo quindi al metodo del binder di riordinare la matrice di ReorderArgumentArray argomenti nel formato originale.

Il BindToMethod metodo viene usato dal Type.InvokeMember metodo .

Se un'implementazione del binder consente la coercizione dei valori stringa ai tipi numerici, il culture parametro è necessario 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