Descobrir as propriedades de um objeto

<< Click to Display Table of Contents >>

Navigation:  Outros >

Descobrir as propriedades de um objeto

Previous pageReturn to chapter overviewNext page

    class Pessoa

    {

        public int Idade;

        public string Nome;

 

        public Pessoa()

        {

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            //criamos uma instancia do objeto 

            Pessoa pessoa = new Pessoa();

            Type srcType = pessoa.GetType();

 

            // recupera a lista de propriedades 

            PropertyInfo[] props = srcType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

 

            //recupera uma lista de campos. variáveis declaradas como públicas 

            FieldInfo[] vars = srcType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);

 

            //percorre as variáveis 

            foreach (PropertyInfo p in props)

            {

                if (p.CanRead == true)//permite leitura, para saber se permite gravação use p.CanWrite 

                    Console.WriteLine(p.Name);

            }

 

            // as linhas aqui são iguais as de cima, basicamente só muda o tipo :) 

            foreach (FieldInfo f in vars)

            {

                if (f.IsPublic == true)

                    Console.WriteLine(f.Name);

            }

 

            Console.ReadKey(); 

        }

    }

 

Saída

 

Idade

Nome