diff --git a/MDFe.Utils/Configuracoes/MDFeConfiguracao.cs b/MDFe.Utils/Configuracoes/MDFeConfiguracao.cs index e31c301e2..cea76dd05 100644 --- a/MDFe.Utils/Configuracoes/MDFeConfiguracao.cs +++ b/MDFe.Utils/Configuracoes/MDFeConfiguracao.cs @@ -117,9 +117,9 @@ public X509Certificate2 X509Certificate2 { get { - if (_certificado != null) - if (!ConfiguracaoCertificado.ManterDadosEmCache) - _certificado.Reset(); + if (_certificado != null && !DeveManterCertificadoEmCache()) + _certificado.Reset(); + _certificado = ObterCertificado(); return _certificado; } @@ -190,14 +190,20 @@ public void Dispose() private void LimparCertificado() { - var naoDeveManterCertificadoEmCache = - !ConfiguracaoCertificado.ManterDadosEmCache && _certificado != null; + if (DeveManterCertificadoEmCache()) + return; - if (naoDeveManterCertificadoEmCache) - { - _certificado.Reset(); - _certificado = null; - } + _certificado.Reset(); + _certificado = null; + } + + private bool DeveManterCertificadoEmCache() + { + var deveManterCertificadoEmCache = _certificado == null || + ConfiguracaoCertificado == null || + ConfiguracaoCertificado.ManterDadosEmCache; + + return deveManterCertificadoEmCache; } } }