0

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>'

私は立ち往生しています。ヘルパーはいますか?

ジェイク

4

1 に答える 1

0

問題は、ジェネリックを使用しないバージョンのエンジンを使用しているが、ハンドラーでジェネリックを使用していることです。

これを試してください:

  var engine = new FileHelperEngine<MyClass>();
  engine.Options.IgnoreFirstLines = 1;
  engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
  engine.AfterReadRecord += new FileHelpers.Events.AfterReadHandler<MyClass>(engine_AfterReadRecord);
于 2013-07-31T19:35:03.907 に答える