public IList <T> Results(IDataReader dre) { IList <T> sessions = new List <T>(); PropertyInfo[] properties; try { while (dre.Read()) { T obj = new T(); properties = obj.GetType().GetProperties(); foreach (var property in properties) { if (property.PropertyType == typeof(TDesc)) { property.SetValue(obj, dalDesc.OneResultsDesc(dre), null); } else { property.SetValue(obj, DBConvert.ParseDBToObject(dre, property), null); } } sessions.Add(obj); } } catch (Exception ex) { Write2Log.WriteLogs("Generic<T>", string.Format("IList<{0}> Results(IDataReader dre)", typeof(T).Name), ex.Message); } finally { dre.Close(); } return(sessions); }