В соответствии с инструкциями из раздела Начало работы с CsvHelper у меня есть следующий код, за исключением строки csv.Configuration.BadDataFound:
using (var csv = new CsvReader(tr, CultureInfo.InvariantCulture))
{
List<string> badPeople = new List<string>();
csv.Configuration.BadDataFound = context => badPeople.Add(context.RawRecord);
try
{
var people = csv.GetRecords<Person>();
var count = people.Count();
response = await Http.PostAsJsonAsync("api/people/batch", people);
Message = $"{response}: {selectedFile.Count} file uploaded";
}
catch (Exception ex)
{
Message = ex.Message;
}
}
Я настроил строку BadDataFound на основе следующих предложений:
- Обработка неверных записей CSV в CsvHelper
- CSVHelper: ведение журнала ошибок при возникновении исключения BadDataException
- CSVHelper BadDataFound в действительном csv и многие другие.
В документации CsvHelper.Configuration говорится:
Получает или задает функцию, вызываемую при обнаружении неверных данных поля. Поле содержит неверные данные, если оно содержит кавычки и поле не заключено в кавычки (экранировано). Вы можете предоставить свою собственную функцию для других вещей, например, для регистрации проблемы, вместо того, чтобы генерировать исключение. Аргументы: контекст
Я все время получаю сообщение об ошибке, что у BadDataFound нет установщика, и, судя по тому, что я видел при просмотре кода на GitHub, это имеет смысл. В сообщении об ошибке, которое я получаю при запуске без строки BadDataFOund, говорится, что можно игнорировать BadDataFound, обнулив его.
Что еще больше усложняет ситуацию, в том контексте, который я могу найти, также нет RawRecord.
Как мне заставить это работать?