我正在使用FileHelpers库导入制表符分隔文件。我启用了ErrorMode.SaveAndContinue。我面临的问题是当特定字段具有无效数据类型时
[FieldConverter(ConverterKind.Decimal)]
public decimal? Price;
(例如十进制?价格字段在其中具有字符串值xxxxxx)在单个记录中,库仅检查第一个字段值并抛出记录到ErrorManager.Errors中的内部异常。
我需要在同一行检查剩余的字段,并在同一个循环中记录它们的错误。
我该怎么做?
**请注意我已经尝试编写CustomConverter但是我需要再次抛出ConvertException,以便它被ErrorManager捕获并且它只是移动到下一行。
由于异常
,不会调用AfterReadRecord答案 0 :(得分:1)
该行为是从库的第一个版本设计的,如果发现问题则抛出异常,或者如果存在ErrorManager则记录错误
解决问题的最佳方法是使用Price字符串字段,然后在AfterReadRecord方法中执行所需的验证
例如
public class YourClass: INotifyRead
{
[FieldConverter(ConverterKind.Decimal)]
public string Price;
void AfterReadRecord (...)
// Validate inside this method
}