public override void CompleteObject(Teste o, DataAccessLayer dal, bool completeRelatedObjects = true) { if (o == null) { throw new ArgumentNullException("teste"); } var dao = new TesteDal(dal); var connOpened = dal.ConnectionOpened; try { dal.OpenConnection(!connOpened); dao.CompleteObject(o); CompleteRelatedObjects(o, dal); } catch (Exception ex) { throw ex; } finally { dal.CloseConnection(!connOpened); } }