CsvHelper缺少字段的列表

时间:2018-07-31 12:04:11

标签: c# csvhelper

此帖子中的借阅-CSVHelper mandatory fields。假设我有以下代码:

public sealed class DataMapper : CsvClassMap<DataType>
{
    public DataMapper()
    {
        Map(m => m.Field1).Name("FirstField");
        Map(m => m.Field2).ConvertUsing(m => { return 0; }); // required field
        Map(m => m.Field3).ConvertUsing(m => { return 1; }); // required field
    }
}

如果我尝试加载一个csv文件,而Field2和Field3丢失了,我如何获得缺失字段的列表?我知道我可以在ConvertUsing语句中检查该字段的存在,但是如果抛出异常,一次只能得到一个。

我已经看过HeaderValidated和MissingFieldFound,但是据我所知,它们被映射时不会被这些方法处理。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我最终添加了一个名为Errors的字段,并在该映射中进行了所有验证。

Map(m => m.Errors).ConvertUsing(m => { 
    // do a bunch of validation
    return "all of the errors";
});

感觉像是重复的工作,因为我仍然需要对我的真实字段进行对ConvertUsing语句的验证,但这确实可行,并且可以。