Использование CSV Helper для записи одной записи из класса - PullRequest
0 голосов
/ 02 июля 2018

Я использую библиотеку CSV Helper, найденную в https://joshclose.github.io/CsvHelper/, чтобы попытаться написать функцию, которая будет экспортировать класс для меня. Вот мой пример класса:

 public class Z1000
{
    public string ModelNumber { get; set; }
    public string SerialNumber { get; set; }
    private string InputVolts { get; set; }
    private string InputHz { get; set; }
    private string InputPhase { get; set; }
    private string InputAmps { get; set; }
    private string OutputVolts { get; set; }
    private string OutputHz { get; set; }
    private string OutputPhase { get; set; }
    private string OutputAmps { get; set; }
    private string Type { get; set; }
    private string WiringDiagram { get; set; }
    private string SCCR { get; set; }
    private string FLA { get; set; }
    private bool SuitableForUseAsServiceEquipment { get; set; } = false;
    private List<string> InstanceManuals { get; set; } = new List<string>();
    private List<string> Options { get; set; } = new List<string>();
    private List<Fuse> Fuses { get; set; } = new List<Fuse>();              
  }

В этом классе также есть несколько функций, я их исключил, так как они не важны для вопроса. Вот функция, которую я пытаюсь использовать для экспорта одной записи.

public void ExportToCsv<T>(T classToExport)
    {
        using (StreamWriter writer = new StreamWriter(@"C:\Data\Output.csv"))
        {
            var csv = new CsvWriter(writer);
            csv.WriteHeader(typeof(T));
            csv.WriteRecord(classToExport);
        }
    }

Код выполняется просто отлично, но по какой-то причине экспортируемый CSV-файл просто пуст. Я пропустил какой-то шаг здесь? Я пробовал это несколькими разными способами и просто не могу его заблокировать. Я прочитал документацию для написания и их примеры, и ни один из них, кажется, не работает для меня. Я что-то упустил полностью?

EDIT: Я поставил точку останова и проверил, что общедоступные данные участника записываются. enter image description here

1 Ответ

0 голосов
/ 02 июля 2018

Похоже, что эта библиотека требует очистки записи после ее вывода.

С сайта GitHub: https://joshclose.github.io/CsvHelper/writing

Окончание строки

Когда вы закончите писать строку, вам нужно очистить поля и начать новый ряд. Промывка и начало нового ряда разделены так, чтобы Вы можете очистить, не создавая новую строку. Звонить NextRecord() будет флеш для вас.

...