Ошибка CsvReaderException
Я продолжаю сталкиваться с этой ошибкой:
Необработанное исключение типа "CsvHelper.CsvReaderException" произошло в CsvHelper.dll
Дополнительная информация: свойства не отображаются для типа "RPS_String_Parse.Program + FormattedRow".
Но я считаю, что правильно следую документации. После ссылки на часть "Начало работы" я реализовал это:
using (var sr = new StreamReader(filePath))
{
var csv = new CsvReader(sr);
var records = csv.GetRecords<FormattedRow>();
foreach (var record in records)
{
Console.WriteLine(record.Address1);
}
Console.ReadLine();
}
и мой класс:
public class FormattedRow
{
public string IDOrderAlpha;
public string IDOrder;
public string AddressCompany;
public string Address1;
public string Address2;
public string AddressCity;
public string AddressState;
public string AddressZip;
public string AddressCountry;
public string ShipMethod;
public string ContactEmail;
public string ContactName;
public string ServiceRep;
public string CustomerPuchaseOrder;
}
Мне кажется, что это должно работать, потому что в документации указано:
Автоматическое сопоставление
Если вы не укажете файл сопоставления, автоматически будет отображаться используемый. Автоматическое сопоставление отобразит свойства в вашем классе в порядке они появляются. Если свойство является пользовательским классом, оно рекурсивно отображает свойства этого класса в том порядке, в котором они появляются. Если auto mapper попадает в круглую ссылку, он перестанет снижаться, что справочная ветвь
Что мне не хватает?
Ответы
Ответ 1
В документации указано, что она будет отображаться на Properties
. У вашего класса есть Fields
. Внесите это изменение:
public class FormattedRow
{
public string IDOrderAlpha { get; set; }
// add { get; set; } for all
}
Это изменит ваши поля на "авто свойства".
Ответ 2
Вам нужно установить параметры конфигурации для сопоставления:
var generatedMap = csv.Configuration.AutoMap<MyClass>();
Итак, кажется, вам нужно сказать это автомашине. Я никогда раньше не использовал эту библиотеку.
Изменить: Джон Б прибил его.