asp.net mvc - Automatically set property after component creation with Autofac -


यहाँ उदाहरण कोड है:

  सार्वजनिक इंटरफेस IService & lt; teentity & gt; {आईसीटेक्स्ट प्रसंग {प्राप्त करें; सेट; } // महत्वहीन विधियाँ bool मान्य (टीएनटीिटी इकाई); शून्य जोड़ें (टीएनटीटीटीटीटी); } सार्वजनिक वर्ग UsersController: नियंत्रक {निजी IService & lt; उपयोगकर्ता & gt; _सर्विस; सार्वजनिक MyController (IService & lt; उपयोगकर्ता & gt; सेवा) {_service = service; _service.Context = नियंत्रकसंगीत; }}  

मैं अपने asp.NET MVC ऐप में नियंत्रकों बनाने के लिए AutofacControllerFactory का उपयोग कर रहा हूँ। क्या हर नियंत्रक के निर्माता में कोड की इस पंक्ति को समाप्त करना संभव है:

  _service.Context = ControllerContext;  

दूसरे शब्दों में: क्या यह नियंत्रक कंसोर्ट के साथ इस संपत्ति को स्वचालित रूप से सेट करना संभव है? यह संभव होना चाहिए क्योंकि प्रत्येक IService कार्यान्वयन में एक सेटिनेबल आईसीटेंटेक्स प्रॉपर्टी है।

क्या मुझे आटोफैक कंट्रोलरफ़ैक्टर का विस्तार करना चाहिए या क्या यह एक मानक तरीका है?

आपके पास क्या है परिपत्र निर्भरता

  • उपयोगकर्ता नियंत्रक निर्भर करता है IService & lt; उपयोगकर्ता & gt;
  • IService & lt; उपयोगकर्ता & gt; पर निर्भर करता है ControllerContext
  • नियंत्रक कंटेक्स्ट पर निर्भर करता है उपयोगकर्ता नियंत्रक

कोई भी डि कंटेनर आपकी कक्षाओं के अंदर में प्रवेश नहीं कर सकता और वहां क्या होता है यह नियंत्रित करें। वे आपके लिए निर्भरताएं स्थापित कर सकते हैं और उन्हें अपनी कक्षाओं में बाहर से इंजेक्षन कर सकते हैं। हालांकि, वे परिपत्र निर्भरता से बहुत अच्छी तरह से निपट नहीं सकते हैं, इसलिए एक बेहतर विकल्प एपीआई को नया स्वरूप देना है।

यहां से यह IService & lt; TEntity & gt; एक लीकिक एबस्ट्रक्शन है।

आप अक्सर उपभोक्ता में से एक को और अधिक ईवेंट-संचालित आर्किटेक्चर।

यहाँ है।

यह एक एएसपी.नेट एमवीसी प्रश्न का एक संबंधित जवाब है जो आपके जैसे बहुत कुछ दिखता है:

यह भी देखें:


Comments