Binder.BindToMethod Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 contengan el mismo número de elementos.
El enlazador permite a un cliente asignar la matriz de argumentos de nuevo 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. Cuando se pasan 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 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.