c# - How set UnityContainer.Resolve<IType>() types precedence? -


UnityContainer में प्राथमिकता कैसे सेट करें? उदाहरण के लिए, एकता को कैसे बताना है कि मैं IVehicle को बस को हल करना चाहता / चाहती हूं, नहीं कार में निम्नलिखित उदाहरण?

  var मूल = नया यूनिटी कंटनेर (); माता-पिता। पंजीकरण प्रकार & lt; IVehicle, कार & gt; (); / * ... * / var बच्चे = parent.CreateChildContainer (); बच्चे। पंजीकरण प्रकार & lt; IVehicle, बस & gt; (); // अब मैं बस जाना चाहता हूं, नहीं कार: var उम्मीद हैबस = बाल। रिज़ोलिव & lt; IVehicle & gt; ();  

आपका वर्तमान उदाहरण के रूप में, यह काम करना चाहिए, यह इसलिए है क्योंकि आप एक बच्चे के कंटेनर में टाइप पंजीकरण, जिसे आप उदाहरण के रिजॉल्यूशन के लिए उपयोग कर रहे हैं, इसका परिणाम बस

यूनिटी कॉन्टैनेयर उदाहरण के लिए, आपके पास दो विकल्प हैं:

एक को माता-पिता के लिए & lt; IVehicle, Bus & gt; के एक नए प्रकार के मैपिंग को जोड़ना है और इसके बाद संकल्प करना है, यह पहले के & lt; IVehicle, कार & gt; प्रकार मानचित्रण को अधिलेखित करेगा।

दूसरा विकल्प नामांकित पंजीकरण का उपयोग करना है और उन नामांकित रजिस्ट्रेशन का उपयोग करके इसका समाधान करना है, अर्थात

<पूर्व> अभिभावक। पंजीकरण प्रकार & lt; IVehicle, कार & gt; ("कार"); अभिभावक। पंजीकरण प्रकार & lt; IVehicle, बस & gt; ("बस"); // इस्तेमाल की जाने वाली तारों को पंजीकरण करने के लिए, var बस = माता-पिता से मेल करें। रीसोलिव & lt; IVehicle & gt; ("बस"); Var कार = पैरेंट। रिज़ोलिव & lt; IVehicle & gt; ("कार");

Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -