Подтвердить что ты не робот

Ошибка 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 попадает в круглую ссылку, он перестанет снижаться, что справочная ветвь

Что мне не хватает?

4b9b3361

Ответ 1

В документации указано, что она будет отображаться на Properties. У вашего класса есть Fields. Внесите это изменение:

public class FormattedRow
{
    public string IDOrderAlpha { get; set; }
    // add { get; set; } for all
}

Это изменит ваши поля на "авто свойства".

Ответ 2

Вам нужно установить параметры конфигурации для сопоставления:

var generatedMap = csv.Configuration.AutoMap<MyClass>();

Итак, кажется, вам нужно сказать это автомашине. Я никогда раньше не использовал эту библиотеку.

Изменить: Джон Б прибил его.