private static void TesteDao <T, TIPO_ID>(BaseDao <T, TIPO_ID> dao) where T : class, IEntidade <TIPO_ID> { var obj = (T)Activator.CreateInstance(typeof(T)); var prop = obj .GetType() .GetProperties() .FirstOrDefault(w => w.Name == "Nome" || w.Name == "Titulo"); if (prop != null) { prop.SetValue(obj, $"Teste {obj.GetType().Name}"); } Console.WriteLine(); Console.WriteLine(new string('-', 40)); Console.WriteLine(obj.ToString()); dao.Incluir(obj); Console.WriteLine($"Após inclusao\n{obj} - {dao.Navegar().Count} Itens"); if (prop != null) { prop.SetValue(obj, $"Teste {obj.GetType().Name} alterado"); } dao.Alterar(obj); Console.WriteLine($"Após alteracao\n{obj} - {dao.Navegar().Count} Itens"); dao.Deletar(obj.Id); Console.WriteLine($"Após delecao\n{obj} - {dao.Navegar().Count} Itens"); }