在我的 CSVWriter (CsvHelper) 中出错 header

Getting the wrong header in my CSVWriter (CsvHelper)

我正在尝试将 header 写入我的 CSV 编写器,但我收到 header 的错误值, 我的代码如下:

定义class:

public class PersonDefinition
{
    public string First_Name { get; set; }
}

映射class:

public sealed class PersonDefinitionMap : CsvClassMap<Person>
{
    public PersonDefinitionMap()
    {

        Map(m => m.First_Name).Name("First Name");
    }
}

在主程序中:

using (TextWriter writer = new StreamWriter(csvFilePath))
{
    var csvWriter = new CsvWriter(writer);
    csvWriter.Configuration.Encoding = Encoding.UTF8;             
    csvWriter.WriteHeader<PersonDefinition>();   
}

但输出 csv 得到以下信息:

First_Name

而不是我的预期

First Name

(没有 space)

这里的问题在哪里?

您似乎还没有注册映射。

var csvWriter = new CsvWriter(writer);
csvWriter.Configuration.Encoding = Encoding.UTF8;             
csvWriter.Configuration.RegisterClassMap<PersonDefinitionMap>(); // <-- here
csvWriter.WriteHeader<PersonDefinition>();

查看documentation,需要注册class地图:

var csv = new CsvReader( textReader );
csv.Configuration.RegisterClassMap<MyClassMap>();

或者您的情况:

var csvWriter = new CsvWriter(writer);
csvWriter.Configuration.Encoding = Encoding.UTF8;  
csvWriter.Configuration.RegisterClassMap<PersonDefinitionMap>();             
csvWriter.WriteHeader<PersonDefinition>();