मुझे एक आसान .NET 4.5 कंसोल ऐप है जिसमें हैगफायर.कोर और हैंगफायर। SQL सर्वर पैकेज स्थापित हैं।हैंगफायर का उपयोग करना: जेनेरिक एनक्यू <T> विधि अपवाद फेंकता
अपने मुख्य विधि में मैं इस तरह एक पृष्ठभूमि काम enqueue:
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 मैं के साथ लाइन पर एक अपवाद मिल एनक्यू:
"प्रकार का एक अनचाहे अपवाद 'सिस्टम। इन्वाइडऑपरेशन अपवाद' सिस्टम में हुआ .Core.dll अतिरिक्त जानकारी: प्रकार के चर 'टी' HangfireTest.Test 'गुंजाइश' से 'संदर्भित है, लेकिन यह परिभाषित नया "
जब मैं के साथ कोड में मेरे टेस्ट वर्ग बनाने" नहीं है " और गैर-सामान्य को कतारबद्ध विधि का उपयोग करें - सब कुछ काम करता है:
BackgroundJob.Enqueue(() => Console.WriteLine(new Test().Sum(3,4)));
लेकिन मैं क्योंकि मैं एक अंतरफलक ITest बना सकते हैं और निर्भरता इंजेक्शन का उपयोग इस तरह कुछ करने के लिए करना चाहते हैं एक सामान्य से एक की जरूरत है,:
BackgroundJob.Enqueue<ITest>((t) => Console.WriteLine(t.Sum(3,4)));
तो, मैं यहाँ क्या गलत कर रहा हूँ?
ऐसा लगता है कि आपका वेरिएबल 't' है कभी तत्काल नहीं – lokusking