Olá, preciso percorrer uma classe e buscar as propriedades dela, mas não estou conseguindo retornar todas. Veja um exemplo, supondo as classes abaixo.
public class Cidade
{
public int Id { get; set; }
public string Nome { get; set; }
}
public class Aluno
{
public int Id { get; set; }
public string Nome { get; set; }
public Cidade Cidade { get; set; }
}
public class Avaliacao
{
public int Id { get; set; }
public Aluno Aluno { get; set; }
}
Preciso listar todas as propriedades da classe Avaliacao e quando chegar em uma propriedade que também é uma classe deve ser listada as suas. Resumindo:
Avaliacao->Id
Avaliacao->Aluno
Avaliacao->Aluno->Id
Avaliacao->Aluno->Nome
Avaliacao->Aluno->Cidade
Avaliacao->Aluno->Cidade->Id
Avaliacao->Aluno->Cidade->Nome
Somente consigo listar as do primeiro nível.
Type tipo = obj.GetType();
PropertyInfo[] propriedades = tipo.GetProperties();
foreach (var item in propriedades)
{
lista.Add(item.Name);
Type pTipo = item.PropertyType;
PropertyInfo[] props = pTipo.GetProperties(); // aqui não retorna as propriedades quando é uma classe, por ex. Id e Nome do aluno
...
}