2011-10-13 17 views
5

मैं किसी तृतीय पक्ष एप्लिकेशन के लिए प्लगइन बना रहा हूं और मेरी प्लगइन विभिन्न घटकों को तार करने के लिए ऑटोफैक का उपयोग करती है। कंटेनर एप्लिकेशन स्टार्टअप पर बनाया गया है, लेकिन होस्ट एप्लिकेशन बाद में मेरे आदेशों को आमंत्रित करता है।क्या घटक ऑटोफैक कंटेनर में अस्थायी रूप से पंजीकृत हो सकते हैं?

जब कोई आदेश बुलाया जाता है, तो मेजबान एप्लिकेशन कुछ प्रकार के उदाहरण प्रदान करता है जो इसे परिभाषित करता है और मेरे घटकों का उपयोग करने की आवश्यकता होगी। मैं इन उदाहरणों को कंटेनर में पंजीकृत करना चाहता हूं ताकि वे इन उदाहरणों पर निर्भर घटकों को तारों की देखभाल कर सकें।

मुझे पता है कि मैं एक कंटेनरबिल्डर का उपयोग मौजूदा कंटेनर को अपडेट करने के लिए कर सकता हूं, लेकिन कमांड पूरा होने पर मैं इन रजिस्ट्रेशन को हटाना चाहता हूं क्योंकि इन उदाहरणों को अब मान्य नहीं होगा। क्या यह संभव है?

शायद 2 कंटेनर का उपयोग करने के लिए एक बेहतर तरीका है ... कमांड इन उदाहरणों को पंजीकृत करने के लिए एक नया कंटेनर बना सकता है और अन्य घटकों को एप्लिकेशन स्कोप्ड कंटेनर से हल किया जा सकता है।

मैं 2 कंटेनरों को कैसे लगा सकता हूं ताकि एप्लिकेशन स्कॉप्ड कंटेनर पर बबल को कॉल कर सकें?

क्या इस दृष्टिकोण से अवगत होने के लिए कोई गठिया है? मुझे लगता है वहाँ घटक जीवन समस्याएं हो सकती हैं ...

संपादित करें: अब मैं और थोड़ा और अधिक शोध और परीक्षण और किया है यह पता चला है मैं सिर्फ BeginLifetimeScope उपयोग कर सकते हैं (कार्रवाई <ContainerBuilder>) रजिस्टर करने के लिए ओवरलोड मेजबान आवेदन ने केवल घोंसला वाले जीवनकाल के लिए उदाहरण प्रदान किए। किसी कारण से मैंने सोचा कि नेस्टेड जीवनकाल में पंजीकरण जोड़ना परिणामस्वरूप उन्हें रूट कंटेनर में जोड़ा जा रहा है, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है।

+0

हां, लाइफटाइमस्कोप बिल्कुल इस मामले में आप चाहते हैं। कृपया अपने प्रश्न का उत्तर पोस्ट करें और इसे स्वीकार किए जाने के रूप में चिह्नित करें ताकि बाद में इस प्रश्न को ढूंढने वाले लोगों को भी उत्तर मिल सके। –

+0

धन्यवाद, मैंने पहले अपना जवाब पोस्ट करने का प्रयास किया लेकिन एसओ ने कहा कि मुझे 8 घंटे इंतजार करना पड़ा क्योंकि मेरे पास अभी तक पर्याप्त प्रतिष्ठा अंक नहीं हैं ... –

+0

हाँ! अब मैं अपना जवाब पोस्ट कर सकता हूं लेकिन कल तक इसे स्वीकार नहीं कर सकता ... –

उत्तर

3

जैसा कि ऊपर दिए गए मेरे संपादन में उल्लेख किया गया है, यह पता चला है कि BeginLifetimeScope (एक्शन < कंटेनरबिल्डर >) बिल्कुल वही है जो मुझे चाहिए। किसी कारण से मैंने सोचा कि घोंसले के जीवनकाल में पंजीकरण जोड़ना परिणामस्वरूप उन्हें मूल कंटेनर में जोड़ा जा रहा है और इसलिए नेस्टेड जीवनकाल के दायरे के समाप्त होने के बाद हल किया जा सकता है, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है।

संबंधित मुद्दे