私は、Hangfire.CoreとHangfire.SqlServerパッケージがインストールされた簡単な.NET 4.5コンソールアプリケーションを持っています。Hangfireの使用:汎用エンキューメソッドが例外をスローする
私はこのようなバックグラウンドジョブをキュー私のメインの方法では:
BackgroundJob.Enqueue<Test>((t) => Console.WriteLine(t.Sum(3,4)));
私のテストクラスは、次のようになります。
public class Test
{
public Test(){ }
public int Sum(int a, int b)
{
return a + b;
}
}
私は私のプログラムをF5とき、私はとのライン上の例外を取得しますエンキュー:
"未処理のタイプ 'System.InvalidOperationException'の例外がシステムで発生しました( ) .Core.dll追加情報: タイプの変数「T」「HangfireTest.Test」スコープから参照「」が、それは 『新しい「私はコードで私のテストクラスを作成する場合
』定義されて ではありません
BackgroundJob.Enqueue(() => Console.WriteLine(new Test().Sum(3,4)));
しかし、私はインターフェイスたITestを作成し、このような何かを行うに依存性注入を使用したい原因私は、一般的なものが必要になります:
BackgroundJob.Enqueue<ITest>((t) => Console.WriteLine(t.Sum(3,4)));
をすべての作品 - と非ジェネリックエンキューメソッドを使用します
ここで私は何を間違えているのですか?
あなたの変数 'T'があるようですインスタンス化されることはありません。 – lokusking