ich eine einfache .NET 4.5 Konsolenanwendung mit Hangfire.Core und Hangfire.SqlServer installierten Pakete haben.Mit Hangfire: generic Enqueue <T> Methode löst Ausnahme
In meinem Hauptmethode enqueue ich einen Hintergrund-Job wie folgt aus:
BackgroundJob.Enqueue<Test>((t) => Console.WriteLine(t.Sum(3,4)));
sieht My Test Klasse wie folgt:
public class Test
{
public Test(){ }
public int Sum(int a, int b)
{
return a + b;
}
}
Wenn ich mein Programm F5 erhalte ich eine Ausnahme auf der Linie mit Enqueue:
„Eine nicht behandelte Ausnahme des Typs 'System.InvalidOperationException' aufgetreten im System .Core.dll Zusätzliche Informationen: Variable ‚t‘ von Typ ‚HangfireTest.Test‘ von Umfang verwiesen wird ‚‘, aber es ist nicht definierte neue“
Wenn ich meine Test-Klasse in Code mit erstellen‚‘ und verwenden Sie nicht generische Methode ENQUEUE - alles funktioniert:
BackgroundJob.Enqueue(() => Console.WriteLine(new Test().Sum(3,4)));
Aber ich brauche einen generischen, Ursache ich mag würde eine Schnittstelle ITest erstellen und Dependency Injection verwenden, so etwas zu tun:
BackgroundJob.Enqueue<ITest>((t) => Console.WriteLine(t.Sum(3,4)));
Also, was mache ich hier falsch?
Es Ihre Variable 't' scheint, ist nie instanziiert. – lokusking