Vamos lá.
A primeira cousa a se fazer é criar um projeto em
File -> New -> Project, lá vão ter algumas opções, escolha
Console Application.
Proxímo passo é fazer o using do Reflecton. Logo no inicio do .CS faça o using System.Reflection;.
Agora, para exemplificar, vamos criar uma classe chamada
Funcionario, veja como abaixo:
class Funcionario
{
public Funcionario(int codigo, string nome)
{
Codigo = codigo;
Nome = nome;
}
public int Codigo { get; set; }
public string Nome { get; set; }
public event EventHandler PegarValor;
}Feito isso, já posso passar para a utilização propriamente dito do reflection. O primeiro passo é criar o objeto
Funcionario passando os valores para seu construtor.
Funcionario FUNC = new Funcionario(123, "Elias Medeiros");Agora, vamos atribuir os tipos referente ao objeto Funcionario para uma variavel do tipo Type. Com isso, vamos conseguir retorna qualquer tipo que o objeto possua.
Type Tipos = FUNC.GetType();Vamos agora percorrer os tipos do objeto Funcionario.
1º - Propriedades: Reparem que estou criando uma variavel (PI) do tipo
PropertyInfo para retornar as propriedades do objeto Funcionario. Para isso eu passo a variavel
Tipos.GetProperties()...foreach (PropertyInfo PI in Tipos.GetProperties())
{
Console.WriteLine(string.Format("Propriedade: {0} - Valor: {1}", PI.Name, PI.GetValue(FUNC, null)));
}2º - Construtores e parametros: Neste caso, vamos criar um variavel (CI) do tipo ConstructorInfo. Para isso eu passo a variavel
Tipos.GetConstructors().... Da mesmo forma, para pegar seus paametros, sendo que a variável será do tipo ParameterInfo. Para isso eu passo a variavel
CI.GetParameters()....
foreach (ConstructorInfo CI in Tipos.GetConstructors())
{
Console.WriteLine(string.Format("Construtor: {0}", CI.Name));
foreach (ParameterInfo PI in CI.GetParameters())
{
Console.WriteLine(string.Format(" Parametros: {0}", PI.Name));
}
}3º - Eventos: Para o caso de eventos, segui o mesmo princípio. Sendo que a variável será do tipo
EventInfo. Para isso eu passo a variável
Tipos.GetEvents()....foreach (EventInfo EI in Tipos.GetEvents())
{
Console.WriteLine(string.Format("Eventos: {0}", EI.Name));
}Então pessoal, esse foi um pequeno exemplo de Reflection. Espero que ajude...
Att,