public void ValidarPreenchimentoDeCamposRequeridos(T Entidade) { var PossuiCampoRequeridoNaoPreenchido = false; Type TipoEntidade = Entidade.GetType(); foreach (var Propriedade in TipoEntidade.GetTypeInfo().GetProperties()) { var DisplayName = ""; var CampoERequeridoENaoEstaPreenchido = false; foreach (var Atributo in Propriedade.GetCustomAttributes()) { if (Atributo.GetType() == typeof(DisplayAttribute)) { DisplayName = ((DisplayAttribute)Atributo).Name; } try { if ((!CamposRequeridosNaoPreenchidos.ToString().Contains(DisplayName)) && (Atributo.GetType() == typeof(RequiredAttribute)) && (Propriedade.GetValue(Entidade).Equals(""))) { CampoERequeridoENaoEstaPreenchido = true; } } catch (NullReferenceException) { CampoERequeridoENaoEstaPreenchido = true; } if (CampoERequeridoENaoEstaPreenchido) { CamposRequeridosNaoPreenchidos.AppendLine(DisplayName); PossuiCampoRequeridoNaoPreenchido = true; } } } if (PossuiCampoRequeridoNaoPreenchido) { throw new Exception("As seguintes informações devem ser preenchidas:\n" + CamposRequeridosNaoPreenchidos.ToString()); } }