我希望这里有一个使用FileHelpers库的专家。
我正在使用Nuget的2.9.9稳定版本,并尝试使用AfterReadRecord事件处理程序来测试字段是否为空。
我所拥有的代码如下所示:
public class Test
{
public class MyClass
{
public string Name;
}
public static void engine_AfterReadRecord(EngineBase engine, FileHelpers.Events.AfterReadEventArgs<MyClass> e)
{
if (String.IsNullOrWhiteSpace(e.Record.Name))
{
throw new InvalidDataException("Name is required");
}
}
public void ReadCSV()
{
FileHelperEngine engine = new FileHelperEngine(typeof(MyClass));
engine.Options.IgnoreFirstLines = 1;
engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
engine.AfterReadRecord += new FileHelpers.Events.AfterReadHandler<MyClass>(engine_AfterReadRecord);
}
}在ReadCSV文件的最后一行中有一个编译错误。错误是:
Cannot implicitly convert type 'FileHelpers.Events.AfterReadHandler<MyClass>' to
'FileHelpers.Events.AfterReadHandler<object>'我卡住了。有帮手吗?
杰克
发布于 2013-07-31 19:35:03
问题是,您使用的引擎版本不使用泛型,而是在处理程序中使用泛型。
试着用这个:
var engine = new FileHelperEngine<MyClass>();
engine.Options.IgnoreFirstLines = 1;
engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
engine.AfterReadRecord += new FileHelpers.Events.AfterReadHandler<MyClass>(engine_AfterReadRecord);https://stackoverflow.com/questions/17971250
复制相似问题