मेरे पास एक वेब एप्लिकेशन है जहां .LifestylePerWebRequest()
का उपयोग करके कई घटक पंजीकृत हैं, अब मैंने क्वार्ट्ज.NET, एक .NET नौकरी शेड्यूलिंग लाइब्रेरी लागू करने का निर्णय लिया है, जो अलग थ्रेड में निष्पादित करता है, और अनुरोध थ्रेड नहीं।कैसल। विन्डसर लाइफस्टाइल संदर्भ के आधार पर?
इस प्रकार, HttpContext.Current
null
उत्पन्न करता है। .LifestylePerWebRequest()
का उपयोग करके मेरी सेवाओं, भंडारों, और IDbConnection
को अभी तक इंस्टॉल किया गया था क्योंकि अनुरोध समाप्त होने पर इन्हें निपटाना आसान हो गया था।
अब मैं इन परिस्थितियों में दोनों परिदृश्यों में उपयोग करना चाहता हूं, वेब अनुरोधों के दौरान, मैं उन्हें अप्रभावित रहना चाहता हूं, और गैर-अनुरोध संदर्भों में मैं चाहता हूं कि वे एक अलग जीवन शैली का उपयोग करें, मुझे लगता है कि मैं खुद को निपटाने में संभाल सकता हूं, लेकिन वर्तमान संदर्भ के आधार पर घटकों के लिए जीवनशैली चुनने के लिए मुझे इसके बारे में कैसे जाना चाहिए?
वर्तमान में मैं सेवाओं (उदाहरण के लिए) रजिस्टर, इस तरह:
container.Register(
AllTypes
.FromAssemblyContaining<EmailService>()
.Where(t => t.Name.EndsWith("Service"))
.WithService.Select(IoC.SelectByInterfaceConvention)
.LifestylePerWebRequest()
);
मैं समझ मैं विस्तार विधि के कुछ प्रकार का उपयोग करना चाहिए, लेकिन मैं सिर्फ यह नहीं दिख रहा है ..
एएसपी.NET ऐप की पृष्ठभूमि में कोड चलाने के बारे में एक संबंधित प्रश्न है। प्रश्न सरल इंजेक्टर डी कंटेनर के बारे में है, लेकिन उत्तर अभी भी आपके लिए दिलचस्प हो सकता है: http://stackoverflow.com/a/11059491/264697। – Steven