Compartilhar via


Binder.BindToMethod Método

Definição

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.

Aplica-se a

Confira também