TypeBuilder.InvokeMember 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.
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.