Мы использовали CSVHelper в течение нескольких лет для чтения файлов, и это великолепно. Недавно мы получили пару ошибок от наших клиентов, которые пытались загрузить свои файлы - и выяснилось, что в файле есть NUL (то есть ноль ASCII).
Например, скажем, у нас было следующее во входном файле - где NUL на самом деле ASCII 0 ...
This, That, NUL, TheOther
CSVHelper прекрасно читает эту строку - и преобразует значение NUL в a. NET ноль (то есть '\ 0'). Мы хотели бы изменить это поведение, если это возможно, и сделать так, чтобы CSVHelper связывал любой экземпляр NUL с помощью string.Empty.
Мы рассмотрели чтение всего файла один раз и замену всех символов NUL сами, но лучше сделать это с CSVHelper, если есть элегантный способ сделать это. Я мог бы изменить все наши карты классов и переопределить все преобразователи типов в блоке, чтобы сделать это, но если есть решение более общего назначения, я бы лучше использовал это.
Я посмотрел на CsvConfiguration Свойство .InjectionCharacters и SanitizeForInjection могут сработать, но похоже, что это просто добавляет escape-символ в начале поля.
Любые предложения с благодарностью приняты, заранее спасибо!