मान लें मैं कंटेनर में पंजीकृत से अधिक ऑब्जेक्ट, सभी एक ही इंटरफ़ेस को लागू है:आदेश जब महल विंडसर में ResolveAll बुला
container.Register(
Component.For<ITask>().ImplementedBy<Task1>(),
Component.For<ITask>().ImplementedBy<Task2>(),
Component.For<ITask>().ImplementedBy<Task3>(),
Component.For<ITask>().ImplementedBy<Task4>(),
);
और मैं ITask के सभी कार्यान्वयन को हल करना चाहते हैं:
var tasks = container.ResolveAll<ITask>();
क्या हल किए गए उदाहरणों के आदेश को नियंत्रित करने का कोई तरीका है?
नोट: जाहिर है, मैं आईटस्क पर Order
या Priority
संपत्ति को कार्यान्वित कर सकता हूं, और केवल कार्यों की सूची को सॉर्ट कर सकता हूं, लेकिन मैं निम्न-स्तरीय समाधान की तलाश में हूं।
+1 में उपयोगी नहीं हो सकता है हो सकता है। यह समस्या वास्तव में मुझे खराब करती है क्योंकि हैंडलर फ़िल्टर को सॉर्ट करने के लिए कार्यान्वयन के बारे में कुछ जानना आवश्यक है। मुझे उम्मीद है कि आपको अपने प्रश्न से बाहर करने के कुछ बेहतर तरीके मिलेंगे :) – samy
@ सैमी मैं पूरी तरह से तुम्हारे साथ हूं, दोस्त। लेकिन, मुझे यह मानना है कि यह विंडसर महल की समस्या नहीं है। मेरे सबसे अच्छे ज्ञान के लिए -ऑर्टिंग इकाइयां/घटक सिस्टम के व्यावसायिक तर्क का हिस्सा है और यह स्पष्ट रूप से नहीं है कि विंडसर कैसल किस प्रकार बनाया गया था।यह कुछ "ठंडा" सुविधाओं के साथ थोड़ा दूर हो सकता है – Leo
@Saguiltay यदि आप विंडसर महल के प्रारंभिकरण के लिए बहुत अधिक निर्भरताओं को जोड़ने के बारे में चिंतित हैं- वैरोनिक डीआई और आईओसी निर्भरताओं को तोड़ने वाले हैं- तो आपको एक रैपर घटक बनाना चाहिए सॉर्टिंग, फ़िल्टरिंग इत्यादि के सभी तर्क। इसे एक इंटरफ़ेस को कार्यान्वित करें जो इन कार्यों को वापस करने के लिए एक विधि का खुलासा करता है और आखिरकार, इस रैपर को पंजीकृत करें जैसा कि आप आमतौर पर विंडसर कैसल – Leo