Binder.BindToMethod Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.