CsvHelper Convert使用不更改输出 [英] CsvHelper ConvertUsing not changing output

查看:281
本文介绍了CsvHelper Convert使用不更改输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用 CsvHelper ConvertUsing 方法



我已经阅读了关于

我使用的是一个简单的类:

  public class Test 
{
public long Id {get;组; }
public string标题{get;组; }
}

使用此 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,测试标题

我正在寻找的输出是:

  id,title 
11111,测试标题123

ConvertUsing 正在被忽略。我试过只转换 Id ,只有标题,但这也不工作。

目前 ConvertUsing 仅在读取时使用。



如果要自定义输出,可以使用自定义类型转换器。通过类型转换器选项,你也有一些有限的能力。


I'm trying to use the ConvertUsing method of the CsvHelper library (v 2.4.0).

I've read the documentation about ConvertUsing but can't get it to work.

I'm using a simple class:

public class Test
{
    public long Id { get; set; }
    public string Title { get; set; }
}

With this 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");
    }
}

My code which uses these creates an instance of the class and then writes it to 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);
}

However the output file test.csv is always the following format:

id,title
99,Test title

The output I'm looking for is:

id,title
11111,Test title 123

And the ConvertUsing is being ignored. I've tried only converting the Id, and only the Title, but this doesn't work either.

Any ideas where I'm going wrong?

解决方案

Currently ConvertUsing is only used when reading.

You can use a custom type converter if you want to customize the output. You also have some limited abilities through the type converter options.

这篇关于CsvHelper Convert使用不更改输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆