using static System.Console;
using System.Reflection;
public class Program {
public static void Main(string[] args) {
var objGeneric = new Generica();
objGeneric.Pessoa.Nome = "PAULO TADEU CHAGAS";
objGeneric.Pessoa.Idade = 25;
Teste(objGeneric.Pessoa);
}
static void Teste<T>(T xpto) {
var tipo = xpto.GetType();
PropertyInfo[] propt = tipo.GetProperties();
foreach (var prop in tipo.GetProperties()) {
WriteLine($"Nome: {prop.Name}");
WriteLine($"Valor: {prop.GetValue(xpto, null)}");
}
}
}
public class Generica {
public Pessoa Pessoa { get; set; }
public Generica() => this.Pessoa = new Pessoa();
}
public class Pessoa {
public string Nome { get; set; }
public int Idade { get; set; }
}
//https://pt.stackoverflow.com/q/405090/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsKCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICB2YXIgb2JqR2VuZXJpYyA9IG5ldyBHZW5lcmljYSgpOwogICAgICAgIG9iakdlbmVyaWMuUGVzc29hLk5vbWUgPSAiUEFVTE8gVEFERVUgQ0hBR0FTIjsKICAgICAgICBvYmpHZW5lcmljLlBlc3NvYS5JZGFkZSA9IDI1OwogICAgICAgIFRlc3RlKG9iakdlbmVyaWMuUGVzc29hKTsKICAgIH0KICAgIHN0YXRpYyB2b2lkIFRlc3RlPFQ+KFQgeHB0bykgewogICAgICAgIHZhciB0aXBvID0geHB0by5HZXRUeXBlKCk7CiAgICAgICAgUHJvcGVydHlJbmZvW10gcHJvcHQgPSB0aXBvLkdldFByb3BlcnRpZXMoKTsKICAgICAgICBmb3JlYWNoICh2YXIgcHJvcCBpbiB0aXBvLkdldFByb3BlcnRpZXMoKSkgewogICAgICAgICAgICBXcml0ZUxpbmUoJCJOb21lOiB7cHJvcC5OYW1lfSIpOwogICAgICAgICAgICBXcml0ZUxpbmUoJCJWYWxvcjoge3Byb3AuR2V0VmFsdWUoeHB0bywgbnVsbCl9Iik7CiAgICAgICAgfQogICAgfQp9CgpwdWJsaWMgY2xhc3MgR2VuZXJpY2EgewogICAgcHVibGljIFBlc3NvYSBQZXNzb2EgeyBnZXQ7IHNldDsgfQoJcHVibGljIEdlbmVyaWNhKCkgPT4gdGhpcy5QZXNzb2EgPSBuZXcgUGVzc29hKCk7Cn0KCnB1YmxpYyBjbGFzcyBQZXNzb2EgewogICAgcHVibGljIHN0cmluZyBOb21lIHsgZ2V0OyBzZXQ7IH0KICAgIHB1YmxpYyBpbnQgSWRhZGUgeyBnZXQ7IHNldDsgfQp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS80MDUwOTAvMTAx