CsvHelper缺少字段的列表

问题描述 投票:0回答:1

借用这篇文章 - 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,但是当它们被映射时,就我所知,这些方法都没有处理它们。

有任何想法吗?

c# csvhelper
1个回答
0
投票

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

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

这感觉就像是重复工作,因为我仍然需要在ConvertUsing语句上验证我的真实字段,但这很有效,结果还不错。

© www.soinside.com 2019 - 2024. All rights reserved.