Binder.BindToMethod Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Seleciona um método a ser invocado do conjunto de métodos especificado, de acordo com os argumentos fornecidos.
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
Uma combinação bit a bit dos valores BindingFlags.
- match
- MethodBase[]
O conjunto de métodos que são candidatos para correspondência. Por exemplo, quando um objeto Binder é usado por InvokeMember, esse parâmetro especifica o conjunto de métodos que a reflexão determinou ser possível fazer a correspondência, normalmente, porque eles têm o nome do membro correto. A implementação padrão fornecida por DefaultBinder altera a ordem dessa matriz.
- args
- Object[]
Os argumentos passados. O associador pode alterar a ordem dos argumentos nessa matriz; por exemplo, o associador padrão altera a ordem dos argumentos se o parâmetro names
é usado para especificar uma ordem diferente da ordem posicional. Se uma implementação de associador impõe tipos de argumento, os tipos e valores dos argumentos também podem ser alterados.
- modifiers
- ParameterModifier[]
Uma matriz de modificadores de parâmetro que permite que a associação funcione com assinaturas de parâmetro nas quais os tipos foram modificados. A implementação de associador padrão não usa esse parâmetro.
- culture
- CultureInfo
Uma instância de CultureInfo que é usada para controlar a coerção de tipos de dados, em implementações de associador que impõem tipos. Caso culture
seja null
, CultureInfo para o thread atual é usado.
- names
- String[]
Os nomes de parâmetro, se eles deverão ser considerados ao fazer a correspondência ou null
, se os argumentos deverão ser tratados como exclusivamente posicionais. Por exemplo, nomes de parâmetro deverão ser usados se os argumentos não forem fornecidos na ordem posicional.
- state
- Object
Depois que o método for retornado, state
conterá um objeto fornecido pelo associador que mantém o controle da reordenação de argumento. O associador cria esse objeto e é o único consumidor dele. Se state
não for null
quando BindToMethod
for retornado, será necessário passar state
para o método ReorderArgumentArray(Object[], Object) se você desejar restaurar args
para a ordem original, por exemplo, para que seja possível recuperar os valores de parâmetros ref
(parâmetros ByRef
no Visual Basic).
Retornos
O método correspondente.
Exceções
Para o associador padrão, match
contém vários métodos que são correspondências igualmente boas para args
. Por exemplo, args
contém um objeto MyClass
que implementa a interface IMyClass
e match
contém um método que usa MyClass
e um método que usa IMyClass
.
Para o associador padrão, match
não contém nenhum método que pode aceitar os argumentos fornecidos em args
.
Para o associador padrão, match
é null
ou uma matriz vazia.
Comentários
O associador padrão leva em conta os parâmetros que têm valores e params
matrizes (ParamArray
matrizes no Visual Basic). Portanto, é possível encontrar uma correspondência nos casos args
em que e match
não contêm o mesmo número de elementos.
O associador permite que um cliente mapeie a matriz de argumentos de volta ao formulário original se a matriz de argumentos tiver sido manipulada por BindToMethod. Use essa funcionalidade de remapeamento para recuperar argumentos de referência quando esses argumentos estiverem presentes. Quando você passa argumentos por nome, o associador reordena a matriz de argumentos. O state
parâmetro mantém o controle da reordenação de argumento, permitindo assim que o método do ReorderArgumentArray associador reordene a matriz de argumentos para seu formulário original.
O BindToMethod método é usado pelo Type.InvokeMember método .
Se uma implementação de associador permitir a coerção de valores de cadeia de caracteres para tipos numéricos, o culture
parâmetro será necessário para converter uma cadeia de caracteres que representa 1000 em um Double valor, pois 1000 é representado de forma diferente por culturas diferentes. O associador padrão não executa coerções de cadeia de caracteres desse tipo.