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
Post a Comment