Conhecimento de uma classe sobre si mesma ou RTTI
11/07/2007
0
Minha idéia é: dada uma determinada classe, salvar seu estado num banco de dados, onde cada tabela seria uma classe, cada registro um objeto diferente e cada campo de uma tabela seria uma propriedade.
Para isso eu estou usando o visual studio 2003, mas acho que em borland C# builder é a mesma coisa. (esse forum é só para borland c builder ou para c no geral?)
Grato
Vitor Rubio
Posts
23/08/2007
Cd.artista
acrescenta na sua classe o seguinte namespace:
using System.Reflection;
Estou usando o Visual Studio 2005, não sei se tem diferença pra sua versão.
Agora vamos criar uma coleção de strings para receber as propriedades e outra pra receber os tipos:
List<string> propi = new List<string>(); List<string> tipo = new List<string>();
Vamos fazer um loop pra carregar nossas coleções:
//Isso vai passar por cada propriedade da classe e pegar um lista de informações. foreach(PropertyInfo prop in this.GetType().GetProperties()) { //agora vamos preencher com os dados. propi.Add(prop.Name); tipo.Add(prop.PropertyType.Name); }
Pronto preenchemos oque precisamos: Nomes e Tipos.
Basta retornar as strings;
//Transfoma as List em array. string[] p = propi.ToArray(); string[] t = tipo.ToArray();
Pronto agora é só retirar dos araays e colocar onde quiser.
Espero que consiga entender.
23/08/2007
Rjun
24/08/2007
Vitor Rubio
Só não sei se dá para configurar o vs2003 para usar o .Net 2.0, tenho quase certeza que não dá, mas mesmo assim dá pra fazer o programa no bloco de notas, ou notepad++ e compilar via linha de comando, ou usar uma IDE open-source, como o sharp develop.
Mas nesse caso nem precisa usar generics, basta criar um descendnete de arraylist que agrupe elementos do tipo string ou fazer o typecasting mesmo ^^
24/08/2007
Cd.artista
Clique aqui para fazer login e interagir na Comunidade :)