Binder.BindToMethod 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.

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.

match
MethodBase[]

El conjunto de métodos que podrían coincidir. 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. La implementación predeterminada proporcionada por DefaultBinder cambia el orden de esta matriz.

args
Object[]

Argumentos que se han pasado. 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. Si una implementación del enlazador convierte tipos de argumentos, los tipos y valores de los argumentos también se pueden cambiar.

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. La implementación de enlazador predeterminada no utiliza este parámetro.

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. Si culture es null, se usa CultureInfo del subproceso actual.

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. Por ejemplo, hay que utilizar los nombres de parámetros si los argumentos no se proporcionan en un orden posicional.

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. El enlazador crea este objeto y es su único consumidor. 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).

Devoluciones

El método correspondiente.

Excepciones

En el enlazador predeterminado, match contiene varios métodos que constituyen coincidencias igualmente buenas para args. Por ejemplo, args contiene un MyClass objeto que implementa la IMyClass interfaz y match contiene un método que toma MyClass y un método que toma IMyClass.

En el enlazador predeterminado, match no contiene ningún método que pueda aceptar los argumentos proporcionados en args.

En el enlazador predeterminado, match es null o una matriz vacía.

Comentarios

El enlazador predeterminado tiene en cuenta ambos parámetros que tienen valores y params matrices (ParamArray matrices en Visual Basic). Por lo tanto, es posible encontrar una coincidencia en los casos en args los que y match no contienen el mismo número de elementos.

El enlazador permite a un cliente asignar la matriz de argumentos a su forma original si la matriz de argumentos ha sido manipulada por BindToMethod. Use esta funcionalidad de reasignación para recuperar argumentos por referencia cuando estos argumentos están presentes. Al pasar argumentos por nombre, el enlazador reordena la matriz de argumentos. El state parámetro realiza un seguimiento de la reordenación de argumentos, lo que permite al método del ReorderArgumentArray enlazador reordenar la matriz de argumentos en su forma original.

El BindToMethod método usa el Type.InvokeMember método .

Si una implementación de enlazador permite la coerción de valores de cadena a tipos numéricos, el culture parámetro es necesario para convertir una cadena que represente 1000 a un Double valor, ya que 1000 se representa de forma diferente por referencias culturales diferentes. El enlazador predeterminado no realiza estas conversiones de cadenas.

Se aplica a

Consulte también