मेरे पास एक प्रोजेक्ट है जहां निनजेक आईओसी कंटेनर के रूप में उपयोग किया जाता है। मेरी चिंता का विषय है कि कक्षाओं का एक बहुत कंस्ट्रक्टर्स इस तरह है:आलसी निर्भरता इंजेक्शन
[Inject]
public HomeController(
UserManager userManager, RoleManager roleManager, BlahblahManager blahblahManager) {
_userManager = userManager;
_roleManager = roleManager;
_blahblahManager = blahblahManager;
}
क्या होगा यदि मैं एक बार में इन कक्षाओं के सभी उदाहरणों के लिए नहीं करना चाहते?
जिस तरह से ये सभी वर्ग Lazy<T>
द्वारा लिपटे हैं और कन्स्ट्रक्टर को पास किया गया है, वही नहीं है जो मुझे चाहिए। T
उदाहरण अभी तक नहीं बनाए गए हैं, लेकिन Lazy<T>
उदाहरण पहले से ही स्मृति में संग्रहीत हैं।
मेरा सहयोगी मुझे सभी तत्कालताओं पर नियंत्रण रखने के लिए फैक्टरी पैटर्न का उपयोग करने का सुझाव दे रहा है, लेकिन मुझे यकीन नहीं है कि आईओसी में ऐसी महान डिज़ाइन बग है।
क्या इस स्थिति के लिए कोई कामकाज है या आईओसी वास्तव में इसके डिजाइन में इतना बड़ा दोष है? शायद मुझे एक और आईओसी कंटेनर का उपयोग करना चाहिए?
कोई सुझाव?
आपकी समस्या वास्तव में क्या है? आप इन उदाहरणों को क्यों नहीं चाहते हैं? –
मैं नियंत्रक के काम के दौरान UserManager चाहता हूं, लेकिन RoleManager की आवश्यकता नहीं है और इसके विपरीत। यदि आप आलसी उदाहरणों के बारे में बात करते हैं, तो यह स्मृति में उन्हें रखने का एक बड़ा सौदा नहीं है, लेकिन क्या यह एकमात्र तरीका है? –
xwrs
यह 'UserManager' और' RoleManager' के लिए एक बड़ा सौदा क्यों है? आपके रचनाकारों को वैसे भी भारी काम नहीं करना चाहिए। –