Mitaco 0 Denunciar post Postado Março 25, 2014 Senhores boa tarde, estou montando um método de Exportar dados do BD para Excel dinâmico, dividi essa tarefa em 3 partes. 1 - Preencho um objeto com os dados retornados do BD 2 - Com a lista de objetos gero um DataTable 3 - Com o DataTable gero o Excel. Minha dúvida quanto a isso é a seguinte. Tenho um objeto Pai, ele possui um objeto Filho que por sua vez uma lista de Netos. Gostaria de saber como eu poderia identificar se o dado no momento do Loop é uma propriedade de um Objeto concreto ou uma propriedade comum(string, int, long, etc..). Segue a baixo o exemplo do meu código atual: public DataTable ToDataTable<T>(List<T> items) { DataTable dataTable = new DataTable(typeof(T).Name); PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo prop in Props) { dataTable.Columns.Add(prop.Name); } foreach (T item in items) { var values = new object[Props.Length]; for (int i = 0; i < Props.Length; i++) { values[i] = Props[i].GetValue(item, null); } dataTable.Rows.Add(values); } return dataTable; } Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Março 26, 2014 Você pode tentar usar o typeof(Object) para saber o tipo de objeto. Compartilhar este post Link para o post Compartilhar em outros sites
Mitaco 0 Denunciar post Postado Março 26, 2014 Kahos obrigado. De fato já estou utilizando o typeof.IsAssignableFrom(typeof("MinhaInterface")), porém mesmo o objeto implementando minha interface ele retorna false. Não sei se estou tendo este problema talvez por falta de experiência. Minha ideia é percorrer todos os objetos e caso eu encontrar um objeto que não seja nativo(Que certamente se não for nativo será o meu) percorre-lo também recursivamente, até encontrar todos os dados e popular o DataTable. Você tem alguma sugestão ? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Março 27, 2014 Se você tem o nome do seu objeto então você pode percorrê-lo usando o ID. Compartilhar este post Link para o post Compartilhar em outros sites