Binder.BindToMethod Metodo

Definizione

Seleziona un metodo da richiamare dal set specificato di metodi, in base agli 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 di BindingFlags valori.

match
MethodBase[]

Set di metodi candidati per la corrispondenza. Ad esempio, quando un Binder oggetto viene utilizzato da InvokeMember, questo parametro specifica il set di metodi che la reflection ha determinato come possibili corrispondenze, in genere perché hanno il nome del membro corretto. L'implementazione predefinita fornita da DefaultBinder modifica l'ordine di questa matrice.

args
Object[]

Argomenti passati. Il binder può modificare l'ordine degli argomenti in questa matrice; Ad esempio, il gestore di associazione predefinito modifica l'ordine degli argomenti se il names parametro viene usato per specificare un ordine diverso dall'ordine posizionale. Se un'implementazione del gestore di associazione crea una coesistenza dei tipi di argomento, è possibile modificare anche i tipi e i valori degli argomenti.

modifiers
ParameterModifier[]

Matrice di modificatori di parametri che consentono all'associazione di usare le firme dei parametri in cui sono stati modificati i tipi. L'implementazione predefinita del gestore di associazione non usa questo parametro.

culture
CultureInfo

Istanza di CultureInfo utilizzata per controllare la coercizione dei tipi di dati, nelle implementazioni di binder che coercino i tipi. Se culture è null, viene utilizzato per CultureInfo il thread corrente.

names
String[]

I nomi dei parametri, se i nomi dei parametri devono essere considerati quando corrispondono o null se gli argomenti devono essere considerati puramente posizionali. Ad esempio, i nomi dei parametri devono essere utilizzati se gli argomenti non vengono specificati in ordine posizionale.

state
Object

Dopo che il metodo viene restituito, state contiene un oggetto fornito dallo strumento di associazione che tiene traccia del riordinamento degli argomenti. Il gestore di associazione crea questo oggetto e il gestore di associazione è l'unico consumer di questo oggetto. Se state non è null quando viene restituito BindToMethod, è necessario passare state al metodo ReorderArgumentArray(Object[], Object) se si desidera ripristinare args nell'ordine originale, ad esempio, in modo da poter recuperare i valori dei parametri ref (ByRef parametri in Visual Basic).

Valori restituiti

Metodo corrispondente.

Eccezioni

Per il binder predefinito, match contiene più metodi altrettanto validi per 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, match non contiene metodi che possono accettare gli argomenti forniti in args.

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

Commenti

Il binder predefinito tiene conto di entrambi i parametri con valori e matrici /params (matrici ParamArray 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 mapping per recuperare gli argomenti in base al 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 al metodo del binder di ReorderArgumentArray riordinare la matrice di argomenti nel formato originale.

Il BindToMethod metodo viene utilizzato dal Type.InvokeMember metodo .

Se un'implementazione del gestore di associazione 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. Il gestore di associazione predefinito non esegue tali coercizioni di stringhe.

Si applica a

Vedi anche