向 CsvHelper.Configuration.ClassMap 对象(字符串)添加验证
Add validation to CsvHelper.Configuration.ClassMap object (string)
我使用CsvHelper.Configuration.ClassMap读取csv文件并面临数据验证。
我找到了验证选项并写了一个简单的代码:
Map(m => m.Field).Name("myField").Validate(row => row.Contains('='));
但我不理解输出,并且对可能的选项有点困惑。
那么,我的问题是:
如果 returns 为真 - 我会收到字符串吗?还是布尔值真?我想在那之后将值添加到数据库..
如果 returns false - 我收到了什么?而且,无论如何,该值不会添加到数据库中?
关于如何添加简单验证有什么想法吗?普通代码,未经验证:
地图(m => m.Field).名称("myField");
提前致谢!
你可以使用 CsvHelper 27.1.1 这样写
Map(m => m.Field).Name("myField").Validate(x => x.Field.Contains('='));
在 15.0.3 中你不会使用 Field
Map(m => m.Field).Name("myField").Validate(x => x.Contains("="));
验证函数具有以下签名:
public virtual MemberMap<TClass, TMember> Validate(Validate validateExpression);
验证类型是这样声明的委托:
public delegate bool Validate(ValidateArgs args);
ValidateArgs 具有我在代码示例中使用的 属性 字段。
如果在转换过程中条件为假,它将抛出一个 FieldValidationException。
您可以捕获此异常并添加一些逻辑。
- 如果为真,转换将按预期工作,您的字段将被映射。
- 将抛出 FieldValidationException。
- 见上面的代码。
我使用CsvHelper.Configuration.ClassMap读取csv文件并面临数据验证。
我找到了验证选项并写了一个简单的代码:
Map(m => m.Field).Name("myField").Validate(row => row.Contains('='));
但我不理解输出,并且对可能的选项有点困惑。
那么,我的问题是:
如果 returns 为真 - 我会收到字符串吗?还是布尔值真?我想在那之后将值添加到数据库..
如果 returns false - 我收到了什么?而且,无论如何,该值不会添加到数据库中?
关于如何添加简单验证有什么想法吗?普通代码,未经验证:
地图(m => m.Field).名称("myField");
提前致谢!
你可以使用 CsvHelper 27.1.1 这样写
Map(m => m.Field).Name("myField").Validate(x => x.Field.Contains('='));
在 15.0.3 中你不会使用 Field
Map(m => m.Field).Name("myField").Validate(x => x.Contains("="));
验证函数具有以下签名:
public virtual MemberMap<TClass, TMember> Validate(Validate validateExpression);
验证类型是这样声明的委托:
public delegate bool Validate(ValidateArgs args);
ValidateArgs 具有我在代码示例中使用的 属性 字段。
如果在转换过程中条件为假,它将抛出一个 FieldValidationException。
您可以捕获此异常并添加一些逻辑。
- 如果为真,转换将按预期工作,您的字段将被映射。
- 将抛出 FieldValidationException。
- 见上面的代码。