c# - 缺少字段的 CsvHelper 列表
问题描述
借用这篇文章 - CSVHelper 必填字段。假设我有这个代码:
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,但是据我所知,当它们被映射时,它们并没有被这些方法处理。
有任何想法吗?
解决方案
我最终添加了一个名为 Errors 的字段,并在该映射中进行了所有验证。
Map(m => m.Errors).ConvertUsing(m => {
// do a bunch of validation
return "all of the errors";
});
这感觉像是重复的工作,因为我仍然需要对我的真实字段的 ConvertUsing 语句进行验证,但这很有效,结果还可以。
推荐阅读
- javascript - 如何使用 POST 方法修复 net::err_aborted 415?
- java - Java - 从 MultipartFormDataInput 读取消息/rfc822
- python - 无法将 Dask 数据框与 Plotly Dash 一起使用
- mysql - mysql 8上垂直输出的奇怪错误
- javascript - 在网站上的 div 中显示在浏览器网络控制台中可见的 ajax 请求/响应
- android - 为什么构建实际运行时我的 Android.mk 文件中的斜线消失了?
- python - 使用 Lambda 将转录的 json 文件存储到 s3 中的特定文件夹
- excel - 如何在 Excel 中仅在一个单元格中定义数据中的所有值并将其作为数组在公式中实现?
- ansible - 在库存文件中设置变量时,ansible-playbook 命令引发未定义变量错误
- amazon-web-services - AWS Cognito 的临时密码过期