FileHelpers和数据类型异常

时间:2017-03-14 16:42:29

标签: filehelpers

我正在使用FileHelpers库导入制表符分隔文件。我启用了ErrorMode.SaveAndContinue。我面临的问题是当特定字段具有无效数据类型时

 [FieldConverter(ConverterKind.Decimal)]
 public decimal? Price;

(例如十进制?价格字段在其中具有字符串值xxxxxx)在单个记录中,库仅检查第一个字段值并抛出记录到ErrorManager.Errors中的内部异常。

我需要在同一行检查剩余的字段,并在同一个循环中记录它们的错误。

我该怎么做?

**请注意我已经尝试编写CustomConverter但是我需要再次抛出ConvertException,以便它被ErrorManager捕获并且它只是移动到下一行。

由于异常

,不会调用AfterReadRecord

1 个答案:

答案 0 :(得分:1)

该行为是从库的第一个版本设计的,如果发现问题则抛出异常,或者如果存在ErrorManager则记录错误

解决问题的最佳方法是使用Price字符串字段,然后在AfterReadRecord方法中执行所需的验证

例如

public class YourClass: INotifyRead
{
 [FieldConverter(ConverterKind.Decimal)]
 public string Price;

 void AfterReadRecord (...)
 // Validate inside this method
}