Quer aprender Delphi for PHP?

Caros amigos delphianos, estão com dificuldades em encontrar um bom material sobre Delphi for PHP? Visite a Comunidade Delphi so PHP e veja algumas notícias sobre as novas tendências desta ferramenta. Lá você vai encontrar dicas, downloads, artigos, videos e muito mais sobre o Delphi for PHP. Para se cadastrar é muito simples, rápido e seguro. Clique aqui e seja o mais novo membro da Comunidade Delphi so PHP e bons estudos.

No mais até a próxima.


segunda-feira, 18 de maio de 2009

Vou mostrar aqui um pequeno exemplo da tecnologia REFLECTION

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,

Parceria