Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) Method

Definition

Seleziona un metodo da richiamare dal gruppo di metodi indicato sulla base degli argomenti forniti.Selects a method to invoke from the given set of methods, based on the supplied arguments.

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);
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

Parameters

bindingAttr
BindingFlags

Combinazione bit per bit dei valori di BindingFlags.A bitwise combination of BindingFlags values.

match
MethodBase[]

Gruppo di metodi candidati per la corrispondenza.The set of methods that are candidates for matching. 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.For example, when a Binder object is used by InvokeMember, this parameter specifies the set of methods that reflection has determined to be possible matches, typically because they have the correct member name. L'implementazione predefinita fornita dalla proprietà DefaultBinder modifica l'ordine di questa matrice.The default implementation provided by DefaultBinder changes the order of this array.

args
Object[]

Gli argomenti passati.The arguments that are passed in. 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.The binder can change the order of the arguments in this array; for example, the default binder changes the order of arguments if the names parameter is used to specify an order other than positional order. 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.If a binder implementation coerces argument types, the types and values of the arguments can be changed as well.

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.An array of parameter modifiers that enable binding to work with parameter signatures in which the types have been modified. Questo parametro non viene utilizzato nell'implementazione predefinita del gestore di associazione.The default binder implementation does not use this parameter.

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.An instance of CultureInfo that is used to control the coercion of data types, in binder implementations that coerce types. Se culture è null, per il thread corrente verrà usato l'oggetto CultureInfo.If culture is null, the CultureInfo for the current thread is used.

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.The parameter names, if parameter names are to be considered when matching, or null if arguments are to be treated as purely positional. È ad esempio necessario utilizzare i nomi di parametro se gli argomenti non vengono forniti nell'ordine posizionale.For example, parameter names must be used if arguments are not supplied in positional order.

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.After the method returns, state contains a binder-provided object that keeps track of argument reordering. Il gestore di associazione crea questo oggetto e ne è l'unico consumer.The binder creates this object, and the binder is the sole consumer of this object. 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).If state is not null when BindToMethod returns, you must pass state to the ReorderArgumentArray(Object[], Object) method if you want to restore args to its original order, for example, so that you can retrieve the values of ref parameters (ByRef parameters in Visual Basic).

Returns

MethodBase

Metodo corrispondente.The matching method.

Exceptions

Per il gestore di associazione predefinito, il parametro match contiene più metodi che rappresentano corrispondenze ugualmente valide per il parametro args.For the default binder, match contains multiple methods that are equally good matches for args. Ad esempio, args contiene un oggetto MyClass che implementa l'interfaccia IMyClass, mentre match contiene un metodo che accetta MyClass e un metodo che accetta IMyClass.For example, args contains a MyClass object that implements the IMyClass interface, and match contains a method that takes MyClass and a method that takes IMyClass.

Per il gestore di associazione predefinito, il parametro match non contiene metodi che possono accettare gli argomenti forniti nel parametro args.For the default binder, match contains no methods that can accept the arguments supplied in args.

Per il gestore di associazione predefinito, il valore del parametro match è null o una matrice vuota.For the default binder, match is null or an empty array.

Remarks

Il binder predefinito prende in considerazione entrambi i parametri con valori e matrici di params (ParamArray matrici in Visual Basic).The default binder takes into account both parameters that have values and params arrays (ParamArray arrays in Visual Basic). Pertanto, è possibile trovare una corrispondenza nei casi in cui args e match non contengono lo stesso numero di elementi.Thus, it is possible to find a match in cases where args and match do not contain the same number of elements.

Il Binder consente a un client di eseguire il mapping della matrice di argomenti al formato originale se la matrice di argomenti è stata modificata da BindToMethod.The binder enables a client to map the array of arguments back to its original form if the argument array has been manipulated by BindToMethod. Usare questa funzionalità di riassociazione per ottenere gli argomenti per riferimento quando sono presenti argomenti di questo tipo.Use this remap capability to get back by-reference arguments when such arguments are present. Quando si passano gli argomenti per nome, il gestore di associazione riordina la matrice di argomenti.When you pass arguments by name, the binder reorders the argument array. Il parametro state tiene traccia del riordino degli argomenti, consentendo così al metodo ReorderArgumentArray del binder di riordinare la matrice di argomenti nel formato originale.The state parameter keeps track of argument reordering, thus enabling the binder's ReorderArgumentArray method to reorder the argument array to its original form.

Il metodo BindToMethod viene utilizzato dal metodo Type.InvokeMember.The BindToMethod method is used by the Type.InvokeMember method.

Se un'implementazione del gestore di associazione consente la coercizione dei valori stringa a tipi numerici, il culture parametro è necessario per convertire una stringa che rappresenta 1000 in un valore Double, perché 1000 è rappresentato in modo diverso dalle diverse impostazioni cultura.If a binder implementation allows coercion of string values to numeric types, the culture parameter is necessary to convert a string that represents 1000 to a Double value, because 1000 is represented differently by different cultures. Con il gestore di associazione predefinito non sono previste tali assegnazioni di stringhe.The default binder does not do such string coercions.

Applies to

See also