इस उदाहरण को नीचे स्थिर वर्ग देखें।सी # में इस स्थिर वर्ग को दोबारा करने का सबसे अच्छा तरीका?
public static class BackgroundTaskExecuter
{
public static void MethodA()
{
using (var service = IocManager.Instance.ResolveAsDisposable<IServiceA>())
{
service.Object.MethodA();
}
}
public static void MethodB()
{
using (var service = IocManager.Instance.ResolveAsDisposable<IServiceB>())
{
service.Object.MethodB();
}
}
public static void MethodC()
{
using (var service = IocManager.Instance.ResolveAsDisposable<IServiceC>())
{
service.Object.MethodC();
}
}
}
जैसा कि आप देख सकते हैं, मेरे पास तीन विधियां हैं। MethodA
, MethodB
, और MethodC
कि तीन अलग-अलग इंटरफेस IServiceA
, IServiceB
साथ अनुरूप है, और IServiceC
कारण मैं यह कर रहा हूँ क्योंकि मैं aspnetboilerplate ढांचे के साथ और Hangfire में Hangfire.io उपयोग कर रहा हूँ, एक पृष्ठभूमि कार्य HttpContext नहीं है सामान्य निर्भरता इंजेक्शन से। एक स्थिर वर्ग बनाना जो मेरी कॉल को लपेटता है जहां मैं मैन्युअल रूप से हल करता हूं, इस बारे में लगता है।
प्रयोग इस तरह दिखता है:
BackgroundJob.Enqueue(() => BackgroundTaskExecuter.MethodA());
अभी के लिए, मैं सिर्फ अपने वेब अनुप्रयोग में एक या दो पृष्ठभूमि कार्य है, लेकिन क़यास मैं एक बहुत अधिक भविष्य में है और हो सकता है यह अब पोषणीय है, जबकि, यह अगर मैं इस दृष्टिकोण को रखता हूं तो अंततः बदसूरत हो जाएगा।
क्या ऐसा करने का कोई बेहतर तरीका है/इसे पुनः प्रतिक्रिया दें? एक कारखाना पैटर्न या ऐसा कुछ भी शायद?
धन्यवाद।
@RuneFS उदाहरण/hypothetical/MCVE कोड [codereview.se] पर ऑफ-विषय है। कृपया [SO उपयोगकर्ताओं के लिए कोड समीक्षा के लिए एक मार्गदर्शिका] देखें (http://meta.codereview.stackexchange.com/questions/5777/a-guide-to-code-review-for-stack-overflow-users)। –
मैं तर्क दूंगा कि यह प्रश्न वास्तव में सहायता केंद्र में परिभाषित दायरे का पालन करता है। –