Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) Método

Definición

Selecciona un método que se puede invocar desde el conjunto de métodos especificado en función de los argumentos suministrados.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);
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

Parámetros

bindingAttr
BindingFlags

Combinación bit a bit de valores BindingFlags.A bitwise combination of BindingFlags values.

match
MethodBase[]

El conjunto de métodos que podrían coincidir.The set of methods that are candidates for matching. Por ejemplo, cuando un método Binder utiliza un objeto InvokeMember, este parámetro especifica el conjunto de métodos que la reflexión ha determinado como posibles coincidencias, normalmente porque tienen el nombre de miembro correcto.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. La implementación predeterminada proporcionada por DefaultBinder cambia el orden de esta matriz.The default implementation provided by DefaultBinder changes the order of this array.

args
Object[]

Argumentos que se han pasado.The arguments that are passed in. El enlazador puede cambiar el orden de los argumentos de esta matriz; por ejemplo, el enlazador predeterminado cambia el orden de los argumentos si el parámetro names se utiliza para especificar un orden que no sea posicional.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. Si una implementación del enlazador convierte tipos de argumentos, los tipos y valores de los argumentos también se pueden cambiar.If a binder implementation coerces argument types, the types and values of the arguments can be changed as well.

modifiers
ParameterModifier[]

Matriz de modificadores de parámetro que permite que el enlace funcione con firmas de parámetros en las que se han modificado los tipos.An array of parameter modifiers that enable binding to work with parameter signatures in which the types have been modified. La implementación de enlazador predeterminada no utiliza este parámetro.The default binder implementation does not use this parameter.

culture
CultureInfo

Instancia de CultureInfo que se utiliza para controlar la conversión de tipos de datos en implementaciones de enlazadores en las que se convierten tipos.An instance of CultureInfo that is used to control the coercion of data types, in binder implementations that coerce types. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

names
String[]

Los nombres de los parámetros, si estos nombres se van a tener en cuenta cuando se produzca una coincidencia, al coincidir o null si los argumentos se van a tratar en un orden meramente posicional.The parameter names, if parameter names are to be considered when matching, or null if arguments are to be treated as purely positional. Por ejemplo, hay que utilizar los nombres de parámetros si los argumentos no se proporcionan en un orden posicional.For example, parameter names must be used if arguments are not supplied in positional order.

state
Object

Cuando el método devuelve el control, state contiene un objeto proporcionado por el enlazador que hace un seguimiento de la reordenación de argumentos.After the method returns, state contains a binder-provided object that keeps track of argument reordering. El enlazador crea este objeto y es su único consumidor.The binder creates this object, and the binder is the sole consumer of this object. Si state no es null cuando BindToMethod devuelve el control, se debe pasar state al método ReorderArgumentArray(Object[], Object) si se desea restablecer args en su orden original, por ejemplo para que se puedan recuperar los valores de los parámetros ref (parámetros ByRef en 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).

Devoluciones

MethodBase

El método correspondiente.The matching method.

Excepciones

En el enlazador predeterminado, match contiene varios métodos que constituyen coincidencias igualmente buenas para args.For the default binder, match contains multiple methods that are equally good matches for args. Por ejemplo, args contiene un objeto MyClass que implementa la interfaz IMyClass y match contiene un método que toma MyClass y un método que toma 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.

En el enlazador predeterminado, match no contiene ningún método que pueda aceptar los argumentos proporcionados en args.For the default binder, match contains no methods that can accept the arguments supplied in args.

En el enlazador predeterminado, match es null o una matriz vacía.For the default binder, match is null or an empty array.

Comentarios

El enlazador predeterminado tiene en cuenta ambos parámetros que tienen valores y params matrices ( ParamArray matrices en Visual Basic).The default binder takes into account both parameters that have values and params arrays (ParamArray arrays in Visual Basic). Por lo tanto, es posible encontrar una coincidencia en los casos en args los que y match no contengan el mismo número de elementos.Thus, it is possible to find a match in cases where args and match do not contain the same number of elements.

El enlazador permite a un cliente volver a asignar la matriz de argumentos a su forma original si la matriz de argumentos se ha manipulado mediante 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. Utilice esta funcionalidad de reasignación para obtener los argumentos por referencia cuando dichos argumentos estén presentes.Use this remap capability to get back by-reference arguments when such arguments are present. Al pasar argumentos por nombre, el enlazador reordena la matriz de argumentos.When you pass arguments by name, the binder reorders the argument array. El state parámetro realiza un seguimiento de la reordenación de argumentos, lo que permite que el método del enlazador ReorderArgumentArray reordene la matriz de argumentos a su forma original.The state parameter keeps track of argument reordering, thus enabling the binder's ReorderArgumentArray method to reorder the argument array to its original form.

El método BindToMethod utiliza el método Type.InvokeMember .The BindToMethod method is used by the Type.InvokeMember method.

Si una implementación del enlazador permite la conversión de valores de cadena en tipos numéricos, el culture parámetro es necesario para convertir una cadena que representa 1000 en un Double valor, porque 1000 se representa de forma diferente en distintas referencias culturales.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. El enlazador predeterminado no realiza estas conversiones de cadenas.The default binder does not do such string coercions.

Se aplica a

Consulte también