public static string Serializar(object objeto, ComportamentoFlags comportamentoExpecifico) { var comportamentoAtual = ComportamentoAtual.DevolverComportamentoAtual(); ComportamentoAtual.AtualizarComportamentoGeral(comportamentoExpecifico); try { if (objeto == null) { throw new ArgumentNullException(nameof(objeto)); } var tipo = objeto.GetType(); var cabecalhoTx2 = Resolvedor.Cabecalho.RetornaValorCabecalho(tipo); var corpoTx2 = Resolvedor.Propriedades.RetornaValorPropriedades(objeto, tipo); if (string.IsNullOrWhiteSpace(cabecalhoTx2) && ComportamentoAtual.NaoAdicionarCabecalhoRodapeQuandoVazio) { return($"{corpoTx2}"); } return($"INCLUIR{cabecalhoTx2}\n{corpoTx2}SALVAR{cabecalhoTx2}"); } finally { ComportamentoAtual.AtualizarComportamentoGeral(comportamentoAtual); } }
internal static ComportamentoFlags DevolverComportamentoAtual() { ComportamentoFlags comportamentoAtual = 0; if (NomeDaClasseNoCabecalhoQuandoNaoInformadoOuVazio) { comportamentoAtual = ComportamentoFlags.NomeDaClasseNoCabecalhoNaoInformadoOuVazio; } if (SerializarPropriedadesSemAtributo) { comportamentoAtual = comportamentoAtual == 0 ? ComportamentoFlags.SerializarPropriedadesSemAtributo : comportamentoAtual | ComportamentoFlags.SerializarPropriedadesSemAtributo; } if (NomeDaPropriedadeQuandoNomeCampoVazio) { comportamentoAtual = comportamentoAtual == 0 ? ComportamentoFlags.NomeDaPropriedadeQuandoNomeCampoVazio : comportamentoAtual | ComportamentoFlags.NomeDaPropriedadeQuandoNomeCampoVazio; } if (NaoDispararExceptionPropriedadesObrigatoriasVazias) { comportamentoAtual = comportamentoAtual == 0 ? ComportamentoFlags.NaoDispararExceptionPropriedadesObrigatoriasVazias : comportamentoAtual | ComportamentoFlags.NaoDispararExceptionPropriedadesObrigatoriasVazias; } if (NaoDispararExceptionPropriedadesMaioresPermitido) { comportamentoAtual = comportamentoAtual == 0 ? ComportamentoFlags.NaoDispararExceptionPropriedadesMaioresPermitido : comportamentoAtual | ComportamentoFlags.NaoDispararExceptionPropriedadesMaioresPermitido; } if (NaoSerializarCamposNulosNaoObrigatorios) { comportamentoAtual = comportamentoAtual == 0 ? ComportamentoFlags.NaoSerializarCamposNulosNaoObrigatorios : comportamentoAtual | ComportamentoFlags.NaoSerializarCamposNulosNaoObrigatorios; } if (NaoAdicionarCabecalhoRodapeQuandoVazio) { comportamentoAtual = comportamentoAtual == 0 ? ComportamentoFlags.NaoAdicionarCabecalhoRodapeQuandoVazio : comportamentoAtual | ComportamentoFlags.NaoAdicionarCabecalhoRodapeQuandoVazio; } return(comportamentoAtual); }
internal static void AtualizarComportamentoGeral(ComportamentoFlags configuracoes) { NomeDaClasseNoCabecalhoQuandoNaoInformadoOuVazio = configuracoes.HasFlag(ComportamentoFlags.NomeDaClasseNoCabecalhoNaoInformadoOuVazio); SerializarPropriedadesSemAtributo = configuracoes.HasFlag(ComportamentoFlags.SerializarPropriedadesSemAtributo); NomeDaPropriedadeQuandoNomeCampoVazio = configuracoes.HasFlag(ComportamentoFlags.NomeDaPropriedadeQuandoNomeCampoVazio); NaoDispararExceptionPropriedadesObrigatoriasVazias = configuracoes.HasFlag(ComportamentoFlags.NaoDispararExceptionPropriedadesObrigatoriasVazias); NaoDispararExceptionPropriedadesMaioresPermitido = configuracoes.HasFlag(ComportamentoFlags.NaoDispararExceptionPropriedadesMaioresPermitido); }
public static void ConfigurarComportamento(ComportamentoFlags comportamentos) => ComportamentoAtual.AtualizarComportamentoGeral(comportamentos);