Tem umas sugestões aqui que eu gostaria de fazer, porém elas quebram algumas assinaturas #145
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Durante o processamento de RegistroSped tem uma chamada que obtém uma lista de propriedades da classe de forma ordenada e isso é chamado pra cada Registro. Cada nota, cada item de nota, cada qualquer coisa que vai no SPED, essa lista ordenada pode ficar em cache pra melhorar a eficiência da rotina de escreverlinha
Outra alteração que eu fiz foi alterar a forma como cada campo é escrito, pois da forma como estava ele era passado como string pra uma função e dentro da função ele era convertido de volta pra datetime/decimal/int pra depois ser convertido pra string de novo, isso pode ter um impacto grande considerando que essa função está diretamente no caminho crítico da geração do arquivo, sendo chamada centenas de milhares de vezes. A alteração que eu fiz pra mitigar isso altera as assinaturas dessas funções, recebendo object ao invés de string:
Na interface ISped:
Na classe EscreverCamposSped:
Apesar da interface ISped ser pública no meu entendimento ela e esse método tem como intuito ser usado internamente para a gravação de dados das classes para as strings do arquivo SPED