मैं एक नियंत्रक के लिए एक इंटरफेस बना रहा हूं जो विभिन्न प्रकार के फॉर्म सबमिशन विधियों को संभालता है, जो सभी विशिष्ट व्यूमोडल्स को पैरामीटर के रूप में उपयोग करते हैं। मेरा लक्ष्य इंटरफ़ेस को एक अलग नियंत्रक में पास करने के लिए निर्भरता इंजेक्शन (डीआई) का उपयोग करना है जिसे इंटरफ़ेस से किसी एक विधि को निष्पादित करने की आवश्यकता है।

Interface with broken reference to ViewModel param

इंटरफ़ेस और नियंत्रक ने ठीक काम किया जब इंटरफ़ेस को वेब प्रोजेक्ट के अंदर रखा गया था, हालांकि एक बार जब मैंने इंटरफ़ेस को इंटरफेस प्रोजेक्ट में स्थानांतरित कर दिया, तो व्यूमॉडल्स के संदर्भ टूट गए और मैं यह नहीं समझ सकता कि उन्हें कैसे हल किया जाए।

मैं इसके बजाय DI मार्ग पर जाए बिना सीधे विधि को कॉल करने के लिए इसका उपयोग करने में सक्षम था, हालांकि हमारी बाकी साइट DI का उपयोग करती है और मैं पैटर्न को तोड़ना नहीं चाहता था:

var controller = DependencyResolver.Current.GetService<FormController>();
controller.SendForm(model);

मैंने कोशिश की:

  • इंटरफेस प्रोजेक्ट के असेंबली संदर्भ के रूप में वेब प्रोजेक्ट को जोड़ना, हालांकि यह एक गोलाकार संदर्भ बनाएगा (जैसा कि वीएस कृपया मुझे बताएं।)

  • इंटेलिजेंस, कोई सिफारिश नहीं।

  • एक प्रयोग निर्देश जोड़ना, लेकिन वेब प्रोजेक्ट से चयन करने के लिए उपलब्ध नामस्थान नहीं है

यह 4.6.1 पर ASP.NET MVC साइट है। नियंत्रक वेब प्रोजेक्ट के अंतर्गत नियंत्रक फ़ोल्डर में रहता है। नया इंटरफ़ेस उसी समाधान में एक अलग इंटरफ़ेस प्रोजेक्ट में है।

0
webDevAndEverythingElse 25 अक्टूबर 2019, 17:14

1 उत्तर

सबसे बढ़िया उत्तर

व्यू मॉडल को अपने प्रोजेक्ट में ले जाएं और फिर इसे इंटरफ़ेस और वेब प्रोजेक्ट दोनों में संदर्भित करें।

1
Azhar Khorasany 25 अक्टूबर 2019, 17:18