Compartilhar via


TypeBuilder.InvokeMember Método

Definição

Invoca o membro especificado. O método a ser invocado deve ser acessível e fornecer a correspondência mais específica com a lista de argumentos especificada, sob as restrições dos atributos associadores e de invocação especificados.

public:
 override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
public override object? InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object

Parâmetros

name
String

O nome do membro a ser invocado. Isso pode ser um construtor, um método, uma propriedade ou um campo. É necessário especificar um atributo de invocação adequado. Observe que é possível invocar o membro padrão de uma classe, passando uma cadeia de caracteres vazia como o nome do membro.

invokeAttr
BindingFlags

O atributo de invocação. Isso deve ser um sinalizador de bit de BindingFlags.

binder
Binder

Um objeto que permite a associação, a coerção de tipos de argumento, a invocação de membros e a recuperação de objetos MemberInfo usando reflexão. Se o associador for null, o associador padrão será usado. Consulte Binder.

target
Object

O objeto no qual invocar o membro especificado. Se o membro é estático, esse parâmetro é ignorado.

args
Object[]

Uma lista de argumentos. Essa é uma matriz de objetos que contém o número, a ordem e o tipo dos parâmetros do membro a ser invocado. Se não houver nenhum parâmetro, isso deverá ser nulo.

modifiers
ParameterModifier[]

Uma matriz do mesmo comprimento que args com elementos que representam os atributos associados com os argumentos do membro a ser invocado. Um parâmetro com atributos associados a ele nos metadados. Eles são usados por diversos serviços de interoperabilidade. Consulte as especificações de metadados para obter mais detalhes.

culture
CultureInfo

Uma instância de CultureInfo usada para determinar a coerção de tipos. Se isso for nulo, será usado o CultureInfo do thread atual. (Por exemplo, isso é necessário para converter uma cadeia de caracteres que representa 1000 para um valor de tipo double, uma vez que 1000 é representado de forma diferente por diferentes culturas.)

namedParameters
String[]

Cada parâmetro na matriz namedParameters obtém o valor no elemento correspondente na matriz args. Se o comprimento de args for maior que o de namedParameters, os valores de argumento restantes serão passados em ordem.

Retornos

Retorna o valor retornado do membro invocado.

Exceções

Não há suporte para tipos incompletos nesse método atualmente.

Comentários

Um método será invocado se o número de parâmetros na declaração de método for igual ao número de argumentos na lista de argumentos especificada e o tipo de cada argumento puder ser convertido pelo associador para o tipo do parâmetro.

O associador encontrará todos os métodos correspondentes. Esses métodos são encontrados com base no tipo de associação solicitada (BindingFlags.InvokeMethod, BindingFlags.GetProperties etc.). O conjunto de métodos é filtrado pelo nome, número de argumentos e um conjunto de modificadores de pesquisa definidos no associador. Depois que o método for selecionado, ele será invocado. A acessibilidade é verificada nesse ponto. A pesquisa pode controlar qual conjunto de métodos é pesquisado com base no atributo de acessibilidade associado ao método . O IBinder.BindToMethod método é responsável por selecionar o método a ser invocado. O associador padrão seleciona a correspondência mais específica.

Observação

As restrições de acesso são ignoradas para código totalmente confiável. Ou seja, construtores privados, métodos, campos e propriedades podem ser acessados e invocados usando Reflexão sempre que o código for totalmente confiável.

Não há suporte para este método atualmente. Você pode recuperar o tipo usando Type.GetType ou Assembly.GetType e usar reflexão no tipo recuperado.

Aplica-se a