我正在尝试使用 CsvHelper 的 ConvertUsing
方法库(v 2.4.0)。
我已阅读有关 ConvertUsing 的文档但无法让它工作。
我正在使用一个简单的类:
public class Test
{
public long Id { get; set; }
public string Title { get; set; }
}
使用这个 ClassMap
:
public class TestClassMap : CsvClassMap<Test>
{
public override void CreateMap()
{
Map(m => m.Id).Name("id").ConvertUsing(row => 11111);
Map(m => m.Title).Name("title").ConvertUsing(row => row.GetField("title") + " 123");
}
}
我使用这些的代码创建了该类的一个实例,然后将其写入 CSV:
var test = new Test() { Id = 99, Title = "Test title" };
using (var streamWriter = new StreamWriter("test.csv"))
{
var csv = new CsvWriter(streamWriter);
csv.Configuration.RegisterClassMap<TestClassMap>();
csv.WriteRecord(test);
}
但是输出文件 test.csv
始终是以下格式:
id,title
99,Test title
我正在寻找的输出是:
id,title
11111,Test title 123
ConvertUsing
被忽略了。我试过只转换 Id
和 Title
,但这也不起作用。
有什么地方出错了吗?
最佳答案
目前ConvertUsing
仅在阅读时使用。
如果要自定义输出,可以使用自定义类型转换器。您还可以通过类型转换器选项获得一些有限的能力。
关于c# - CsvHelper ConvertUsing 不改变输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678385/