TypeBuilder.InvokeMember Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Invoca o elemento especificado. O método a invocar deve ser acessível e fornecer a correspondência mais específica com a lista de argumentos especificada, sob as restrições dos atributos de binder e 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);
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 invocar. Isto pode ser um construtor, método, propriedade ou campo. Deve ser especificado um atributo de invocação adequado. Note-se que é possível invocar o membro padrão de uma classe passando uma cadeia vazia como nome do membro.
- invokeAttr
- BindingFlags
O atributo de invocação. Isto deve ser um bit de alerta de BindingFlags.
- binder
- Binder
Um objeto que permite a ligação, coerção de tipos de argumentos, invocação de membros e recuperação de MemberInfo objetos através da reflexão. Se o fichário for null, o binder padrão é usado. Consulte Binder.
- target
- Object
O objeto sobre o qual invocar o membro especificado. Se o elemento for estático, este parâmetro é ignorado.
- args
- Object[]
Uma lista de argumentos. Este é um array de Objects que contém o número, ordem e tipo dos parâmetros do membro a ser invocado. Se não houver parâmetros, isto deverá ser nulo.
- modifiers
- ParameterModifier[]
Um array do mesmo comprimento que args com elementos que representam os atributos associados aos argumentos do membro a invocar. Um parâmetro tem atributos associados nos metadados. São utilizados por vários serviços de interoperabilidade. Consulte as especificações de metadados para mais detalhes.
- culture
- CultureInfo
Um exemplo de CultureInfo usado para governar a coerção de tipos. Se isto for nulo, usa-se para CultureInfo o thread atual. (Note que isto é necessário, por exemplo, para converter uma String que representa 1000 num valor Double, já que 1000 é representado de forma diferente por culturas diferentes.)
- namedParameters
- String[]
Cada parâmetro no namedParameters array recebe o valor no elemento correspondente do args array. Se o comprimento de args for maior que o comprimento de namedParameters, os valores restantes dos argumentos são passados por ordem.
Devoluções
Devolve o valor de retorno do membro invocado.
Exceções
Este método não é atualmente suportado para tipos incompletos.
Observações
Um método será invocado se o número de parâmetros na declaração do método for igual ao número de argumentos na lista de argumentos especificada, e o tipo de cada argumento puder ser convertido pelo binder para o tipo do parâmetro.
O binder vai encontrar todos os métodos de correspondência. Estes métodos são encontrados com base no tipo de ligação solicitada (BindingFlags.InvokeMethod, BindingFlags.GetProperties, entre outros). O conjunto de métodos é filtrado pelo nome, número de argumentos e um conjunto de modificadores de pesquisa definidos no binder. Depois de selecionado o método, será invocado. A acessibilidade é verificada nesse ponto. A pesquisa pode controlar que conjunto de métodos são pesquisados 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 dossier padrão seleciona a correspondência mais específica.
Note
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 acedidos e invocados usando Reflection sempre que o código for totalmente confiável.
Este método não é atualmente suportado. Pode recuperar o tipo usando Type.GetType ou Assembly.GetType e usar reflexão sobre o tipo recuperado.