कैसल विंडसर का उपयोग करना, मैं एक घटक क्षणिक जीवन शैली के साथ विन्यस्त:कैसल विंडसर: क्या मेरा क्षणिक घटक कचरा इकट्ठा होगा?
<component id="publish.mapping.default"
service="IMyService, MyAssembly"
type="MyServiceImplementation, Myassembly"
lifestyle="transient" />
कौन इस तरह उपयोग किया जाएगा:
var service = container.Resolve<IMyService>(componentId);
// service usage ....
// service goes out of scope ...
मेरे सवाल है, सेवा उदाहरण कचरा यह बाद एकत्र किया जाएगा गुंजाइश से बाहर चला जाता है, या कैसल विंडसर एक संदर्भ पर पकड़ जाएगा? मुझे this similar question मिला, जिसका अर्थ है कि उत्तरार्द्ध मामला हो सकता है - लेकिन वहां पोस्ट किए गए लिंक की जांच करने के बाद, मुझे यह सुनिश्चित नहीं है कि चर्चा संदर्भ पर है या यह सुनिश्चित करने के बारे में है कि ऑब्जेक्ट का निपटारा करने पर ऑब्जेक्ट का निपटारा किया जा रहा है या नहीं। मेरी वस्तुओं को निपटाने की जरूरत नहीं है।
यदि कैसल विंडसर उदाहरण पर है, तो क्या इसे रोकने के लिए कोई आसान तरीका है (शायद कॉन्फ़िगरेशन द्वारा)?
संपादित
ऐसा लगता है, मैं रिलीज पर नज़र रखने नीति निर्धारित करने की आवश्यकता है। क्या इसे xml config फ़ाइल में कॉन्फ़िगर किया जा सकता है, या इसे कोड में सेट करने की आवश्यकता है? क्या रिलीज ट्रैकिंग नीति प्रति-घटक आधार पर सेट की जा सकती है?
धन्यवाद। क्या आप जानते हैं कि यह प्रति घटक आधार पर कॉन्फ़िगर किया जा सकता है? (मेरे प्रश्न में संपादन देखें) – driis
मुझे ऐसा नहीं लगता है। मैं वास्तव में कैसल का उपयोग नहीं करता (मुझे पसंद है), लेकिन दस्तावेज़ों का सुझाव है कि यह कर्नेल-चौड़ा है। मुझे यकीन नहीं है कि यह करने के लिए सही बात है, लेकिन एक कस्टम पॉलिसी जोड़ना संभव हो सकता है जो आपके घटक प्रकार पर ध्यान दे ... –
रिलीज पॉलिसी की सेटिंग कंटेनर चौड़ी है। वास्तव में ऐसे दस्तावेज हैं जो निर्दिष्ट करते हैं कि रिलीज पॉलिसी की सेटिंग कंटेनर का उदाहरण बनाने के बाद पहली चीजों में से एक है। यदि इस नियम का पालन नहीं किया जाता है तो कुछ घटक एक विशिष्ट रिलीज नीति और दूसरे का उपयोग करके अन्य बनाए जाएंगे। इसका परिणाम स्मृति रिसाव के कारण होने की उच्च संभावना हो सकती है। – Chai