Binder.BindToMethod Método

Definição

Seleciona um método a invocar do conjunto dado de métodos, com base nos 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);
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 de BindingFlags valores.

match
MethodBase[]

O conjunto de métodos que são candidatos ao emparelhamento. Por exemplo, quando um Binder objeto é usado por InvokeMember, este parâmetro especifica o conjunto de métodos que a reflexão determinou como possíveis correspondências, tipicamente porque têm o nome correto dos membros. A implementação padrão fornecida por DefaultBinder altera a ordem deste array.

args
Object[]

Os argumentos que são aprovados. O fichário pode alterar a ordem dos argumentos neste array; Por exemplo, o ficheiro padrão altera a ordem dos argumentos se o names parâmetro for usado para especificar uma ordem diferente da ordem posicional. Se uma implementação de binder coagir tipos de argumentos, os tipos e valores dos argumentos também podem ser alterados.

modifiers
ParameterModifier[]

Um conjunto de modificadores de parâmetros que permitem que a ligação funcione com assinaturas de parâmetros nas quais os tipos foram modificados. A implementação padrão do binder não utiliza este parâmetro.

culture
CultureInfo

Uma instância disso CultureInfo é usada para controlar a coerção de tipos de dados, em implementações binder que coagem tipos. Se culture for null, é usado o CultureInfo para a thread atual.

names
String[]

Os nomes dos parâmetros, se os nomes dos parâmetros devem ser considerados ao corresponder, ou null se os argumentos devem ser tratados como puramente posicionais. Por exemplo, os nomes dos parâmetros devem ser usados se os argumentos não forem fornecidos por ordem posicional.

state
Object

Após o retorno do método, state contém um objeto fornecido pelo binder que acompanha a reordenação dos argumentos. O fichário cria este objeto, e o fichário é o único consumidor desse objeto. Se state não for null quando BindToMethod regressar, deve passar state ao método ReorderArgumentArray(Object[], Object) se quiser restaurar args à sua ordem original, por exemplo, para que possa recuperar os valores dos parâmetros ref (ByRef parâmetros em Visual Basic).

Devoluções

O método de correspondência.

Exceções

Para o binder padrão, match contém múltiplos métodos que são igualmente bons correspondências para args. Por exemplo, args contém um MyClass objeto que implementa a IMyClass interface, e match contém um método que toma MyClass e um método que toma IMyClass.

Para o ligador padrão, match não contém métodos que possam aceitar os argumentos fornecidos em args.

Para o fichário padrão, match é null ou um array vazio.

Observações

O binder padrão tem em conta tanto parâmetros que têm valores como arrays params (arrays ParamArray em Visual Basic). Assim, é possível encontrar uma correspondência nos casos em que args e match não contêm o mesmo número de elementos.

O binder permite a um cliente mapear o array de argumentos de volta à sua forma original se o array de argumentos tiver sido manipulado por BindToMethod. Use esta capacidade de remapeamento para recuperar argumentos por referência quando tais argumentos estão presentes. Quando passa argumentos por nome, o dossier reordena o array de argumentos. O state parâmetro mantém o registo da reordenação dos argumentos, permitindo assim que o método do ReorderArgumentArray ligador reordene o array de argumentos para a sua forma original.

O BindToMethod método é utilizado pelo Type.InvokeMember método.

Se uma implementação binder permite a coerção de valores de cadeia para tipos numéricos, o culture parâmetro é necessário para converter uma cadeia que representa 1000 num Double valor, porque 1000 é representado de forma diferente por diferentes culturas. O binder padrão não faz essas coerções de cordas.

Aplica-se a

Ver também