मैं वर्तमान में पहली बार सरल इंजेक्टर का उपयोग कर रहा हूं। मेरी नेट परियोजना में मैं परीक्षण चल रहा हूँ और मजाक डेटा एक वेब सेवा से लौटे हैं और इसलिएसरल इंजेक्टर, मौजूदा पंजीकरण को ओवरराइड नहीं कर सकता
_container.Register<IWebServiceOrder>(() => mock.Object, Lifestyle.Transient);
यह ठीक काम करता है की तरह कंटेनर के लिए वस्तु दर्ज की। लेकिन मेरे परीक्षणों में मैं वेब सेवा के लिए दूसरी कॉल पर सिस्टम के व्यवहार का परीक्षण करना चाहता हूं जिसमें अद्यतन डेटा होगा, इसलिए नकली ऑब्जेक्ट को अपडेट करने की आवश्यकता होगी।
डिफ़ॉल्ट रूप से सरल इंजेक्टर मौजूदा पंजीकरण को ओवरराइड करने की अनुमति नहीं देता है लेकिन आधिकारिक वेबसाइट बताती है कि इस व्यवहार को नीचे की तरह बदलना संभव है।
https://simpleinjector.readthedocs.org/en/latest/howto.html#override-existing-registrations
container.Options.AllowOverridingRegistrations = true;
दुर्भाग्य से मैं अभी भी कोई त्रुटि मिलती है जब मैं भी ऊपर दिए गए कोड के साथ वस्तु रजिस्टर करने के लिए दूसरी बार प्रयास करें।
कंटेनर GetInstance, GetAllInstances करने के लिए पहली कॉल के बाद बदला नहीं जा सकता और
ऐसा क्यों हो रहा है पर कोई भी विचार सत्यापित करें?
देखें [यहां] (https://simpleinjector.readthedocs.org/en/latest/decisions.html#the-container-is-locked-after-the-first-call-to-resolve) कंटेनर क्यों है हल करने के लिए पहली कॉल के बाद बंद कर दिया। – qujck