एकता 2.0:
डिफ़ॉल्ट रूप से रजिस्टर इन्स्टेंस कंटेनर कंट्रोलेड लाइफटाइम प्रबंधक का उपयोग करता है जब यूनिटी कंटेनर का निपटाया जाता है, तो वह इस उदाहरण पर विवाद (यदि IDisposable) कॉल करता है।
मेरे मामले में यह नहीं है कि मैं क्या चाहता हूं। इस उदाहरण के स्वामित्व और एक अन्य वर्ग द्वारा निपटाया जाता है; एकता को केवल संदर्भ को इंजेक्ट करना चाहिए इसलिए मैंने इसका उपयोग किया:
कंटेनर। पंजीयक (उदाहरण, नई बाहरी रूप से नियंत्रित लाइफटाइम प्रबंधक ()); यूनिटी दस्तावेज़ीकरण (लाइफटाइम मैनेजर्स को समझने के अंतर्गत) कहता है:
एक ही व्यवहार में मौजूदा ऑब्जेक्ट परिणाम रजिस्टर करने के लिए रजिस्टर इन्स्टेंस विधि का उपयोग करना जैसे कि आप बस रजिस्टर टाईप के साथ आजीवन कंटेनर पंजीकृत इसलिए, यह अनुशंसा की जाती है कि आप रजिस्टर इन्स्टेंस पद्धति का उपयोग किसी मौजूदा ऑब्जेक्ट को पंजीकृत करने के लिए न करें, जिसमें थ्रेड के अलावा गैर-डिफॉल्ट आजीवन प्रबंधकों का उपयोग किया जाता है, जिसमें रजिस्ट्रीयरेंस लागू किया गया था।
क्या होता है इसका मतलब क्या है?
एक ही खंड में यह भी कहा गया है:
यदि आपने एक पंजीकृत इंस्टास्टेंस विधि का उपयोग करते हुए किसी ऑब्जेक्ट का एक मौजूदा इंस्टेंस पंजीकृत किया है, तो कंटेनर सभी कॉल्स के लिए एक समान उदाहरण देता है हल या हल करें सभी या जब निर्भरता तंत्र अन्य वर्गों में उदाहरण पेश करते हैं, बशर्ते कि निम्न में से एक सत्य है:
- आपने एक कंटेनर-नियंत्रित जीवन नियोक्ता निर्दिष्ट किया है
- आप
मैंने कोशिश की है बाहरी रजिस्ट्रीकृत समयोपरि के साथ RegisterInstance का उपयोग करने के बाद एक अलग धागा में हल, और यह काम किया - मुझे एकलटन का उदाहरण मिलता है।
मेरा कोड बनावट इंस्टेंस पंजीकरण अनुभाग में एक उदाहरण से मेल खाता है। मैं यह सुनिश्चित करना चाहता हूं कि मैं संदर्भों को समझता हूं, यद्यपि।
स्पष्ट होने के लिए, मैं हमेशा एकता कंटेनर को थ्रेड की परवाह किए बिना पंजीकृत होने वाले उदाहरण इंजेक्ट करना चाहता हूं। और मैं नहीं < / मजबूत> एकता को निपटाने के लिए चाहते हैं क्या मैं यह सही ढंग से कर रहा हूं?
मुझे लगता है कि तुम अच्छे हो। सभी प्रति-थ्रेड टिप्पणियां केवल तब होती हैं जब आप PerThreadLifetimeManager का उपयोग कर रहे हैं, जो आप उपयोग नहीं कर रहे हैं। यह एमएसडीएन लेख के भाग में सिर्फ बेकार शब्दों का है।
यह एक मानक शब्दावली नहीं है, लेकिन संदर्भ में इस लेख में उनका मतलब कुछ विशेष जीवन समय प्रबंधक द्वारा परिभाषित है PerThreadLifetimeManager के लिए आपका संदर्भ आपका थ्रेड है पदानुक्रमित लाइफटाइम प्रबंधक के लिए आपका संदर्भ आपके कंटेनर पदानुक्रम में एक विशेष कंटेनर है।
बाहरी रूप से नियंत्रित लाइफटाइम प्रबंधक के लिए कोई विशेष संदर्भ नहीं है, इसलिए आप पूरी तरह से नोट में नोट को अनदेखा कर सकते हैं।
एक साइड नोट के रूप में, सुनिश्चित करें कि आप अपने उदाहरणों का निपटान नहीं करते हैं, जबकि आप अभी भी उम्मीद करते हैं कि उन्हें कंटेनर को हल करना होगा। यदि आप ऐसा करते हैं, तो आपका संकल्प अनुरोध या तो आपके द्वारा अपेक्षा की जाने वाली एक भिन्न उदाहरण वापस देगा, या अपवाद फेंक दें, इस पर निर्भर करता है कि कंटेनर आपके प्रकार का निर्माण कर सकता है या नहीं।
Comments
Post a Comment