Partilhar via


Exemplo de tecnologia de invocação de reflexão

Este exemplo demonstra como implementar associação tardia para qualquer assembly gerenciado com métodos e classes públicas.Partir da linha de comando, você seleciona um assembly, tipo, método e parâmetros.O exemplo tentará carregar o assembly, localizar o tipo e o método e chamar o método com os parâmetros passados.O exemplo ainda tenta fazer conversões de tipo necessário para chamadas de métodos que usam parâmetros não são seqüências de caracteres.As classes de reflexão que essa funcionalidade avançada surpreendentemente simples.Um simples projeto DLL chamado Tester.dll está incluído neste exemplo.Projeto testador fornece um tipo simples com alguns métodos para testar com o exemplo de Invoke.

Para obter informações sobre como usar os exemplos, consulte os tópicos a seguir:

Download sample

Para compilação a amostra usando o aviso de comando

  1. navegar até uma das subpastas específicas do linguagem para a amostra.

  2. Tipo de MSBuild InvokeCS.sln or MSBuild InvokeVB.sln, dependendo de sua escolha de linguagem de programação, na linha de comando.

Para compilação a amostra usando o Visual Studio

  1. em aberto Windows Explorer e navegar até um de subpastas específicas do linguagem para a amostra.

  2. clicar duas vezes no ícone de InvokeCS.sln or InvokeVB.sln, dependendo de sua escolha de linguagem, de programação para em em aberto o arquivo no Visual Studio.

  3. Sobre o Compilação menu, clicar Criar solução.

Observação:

Este exemplo cria um aplicativo de console.Você deve iniciá-lo usando o aviso de comando para exibir sua saída.

Invoke.exe aceita parâmetros de linha de comando que indica o que você deseja chamar.Uso de exemplo é exibido se for executado sem parâmetros.Use a seguinte sintaxe para chamar um método em um tipo:

Invoke.exe [Assembly] [Type] [Method] [Parameters...]  

Para executar este exemplo

  1. navegar até o diretório que contém Invoke.exe e Tester.dll.

  2. Tipo de Invoke.exe [assembly] [tipo] [parâmetros...] [método na linha de comando.

Comentários

A ferramenta msbuild cria dois arquivos, Invoke.exe e Tester.dll.

No exemplo a seguir, a ShowMessage método no tipo SomeType é chamado com três parâmetros, por exemplo:

Invoke.exe Tester.dll Microsoft.Samples.SomeType ShowMessage "This is an example of a message." "Question:" 4

Para obter mais informações sobre reflexão chamar, consulte os comentários em arquivos de código-fonte.

Os itens a seguir descrevem brevemente as tecnologias e classes usadas por este exemplo:

  • Reflexão

    • AssemblyUsado para carregar um assembly e para procurar um tipo no assembly.

    • Type Usado para obter uma matriz de MemberInfo instâncias, bem sistema autônomo para fazer referência a um tipo ao criar uma instância se necessário.

    • MethodInfo Usado para descobrir informações sobre um único método, incluindo parâmetros e o nome do método. O exemplo compara as informações desse tipo com as informações fornecidas na linha de comando.MethodInfo também é usado para chamar um método.

    • ParameterInfo Usado principalmente para localizar o tipo de parâmetros de método, para que a amostra pode converter argumentos de linha de comando apropriadamente.

    • Activator Usado para criar uma instância de um tipo, se encontrar o exemplo que uma telefonar para um método de instância é necessária.

  • Sistema

    • Array Usado para copiar uma parte de um array para outro array.

    • Convert Usado para tentar converter os argumentos de linha de comando, que são do tipo String, para o tipo apropriado para os parâmetros passados para os métodos de um determinado tipo.

Consulte também

Referência

Activator

Array

Assembly

AssemblyBuilderAccess

Convert

MethodAttributes

MethodInfo

ParameterInfo

System.Reflection

Type

Outros recursos

Reflexão

Emitindo Métodos Dinâmicos e Assemblies

Geração e compilação dinâmicas de código fonte