के साथ कन्स्ट्रक्टर सूप से परहेज करना मेरे पास बेसकंट्रोलर है जिसका उपयोग मैं एक एमवीसी परियोजना के लिए अपनी क्रॉस कटिंग चिंताओं को घर बनाने के लिए कर रहा हूं।आईओसी के साथ एएसपीएनटी एमवीसी -> बेसकंट्रोलर
हालांकि, इसका मतलब है कि मेरी नियंत्रक 3 निर्भरता है:
public BaseController (IUserService u, ITenantDetailsService t, ISiteConfiguration c)
इस के दुष्प्रभाव यह है कि प्रत्येक व्युत्पन्न नियंत्रक के लिए मेरे कंस्ट्रक्टर्स मानकों से अटा पड़ा हैं:
public AccountController(ILocationService locationService, IAccountService accountService, IFormsAuthentication formsAuth, IMembershipService service, IUserService userService, ISiteConfiguration configuration)
: base(locationService,userService, configuration)
मैं मेरे नियंत्रकों को हल करने के लिए आईओसी (विंडसर) का उपयोग करके, इसलिए पता है कि मैं कन्स्ट्रक्टर निर्भरताओं को हटा सकता हूं और इसे सार्वजनिक गुणों को ऑटो-वायर करने देता हूं।
क्या कुछ निर्भरताओं को मास्क करने के अलावा ऐसा करने का कोई कारण नहीं है?
public AccountController (IAccountService, IFormsAuthentication, IMembershipService)
यह दृष्टिकोण अधिक पठनीय लगता है और उस विशिष्ट नियंत्रक से संबंधित निर्भरताओं का स्पष्ट अवलोकन देता है।
या क्या मुझे यह सब गलत मिला है और क्रॉस कटिंग सेवाओं को स्टोर करने के लिए बेसकंट्रोलर सही जगह नहीं है।
विचारों की सराहना की।
धन्यवाद, क्रिस
मुझे आपकी दृष्टिकोण बहुत पसंद है क्योंकि एक निर्भरता यह स्पष्ट करती है कि जादू बस नहीं होता है। – Chris