मुझे उम्मीद है कि यह एक बेवकूफ सवाल नहीं है, लेकिन मैं कैलिबर्न का उपयोग कर मॉडल देखने में निर्भरताओं को इंजेक्ट करने के लिए सीधे आगे बढ़ने में असमर्थ हूं। माइक्रो।Caliburn.Micro में मॉडल देखने में निर्भरताओं को इंजेक्ट कैसे करें?
मैं एक मुख्य खोल (कंडक्टर) इसलिए की तरह हो रही है:
public class ShellViewModel : Conductor<IScreen>.Collection.OneActive, IShell
{
public ShellViewModel(IEventAggregator eventAggregator) {
ActivateItem(new DashboardViewModel());
}
}
अब मैं DashboardViewModel
में एक सेवा इंजेक्षन करना चाहते हैं लेकिन जब से ActivateItem
विधि मुझे आवश्यकता है एक उदाहरण (पारित बजाय उदाहरण के लिए एक प्रकार), मुझे सेवा प्रदान करने के लिए मजबूर किया गया है। और चूंकि ShellViewModel
अंतर्निहित आईओसी कंटेनर से अवगत नहीं है, इसलिए मुझे खोल में इंजेक्शन देने की सेवा है .. मेरे लिए ऐसा लगता है कि कैलिबर्न एक एप्लिकेशन के भीतर सभी दृश्य मॉडल और निर्भरताओं का एक पूरा ग्राफ लागू करने की कोशिश कर रहा है।
मुझे पता है कि मैं नियंत्रण कंटेनर के अपने उलटा होने के लिए एक स्थिर एक्सेसर का उपयोग कर सकता हूं, लेकिन मुझे वास्तव में यह दृष्टिकोण पसंद नहीं है क्योंकि मैं अपने आवेदन (बूटस्ट्रैपर) के बिना एक एकल संरचना रूट रखना चाहता हूं अन्य भागों निर्भरता इंजेक्शन और इस तरह के बारे में जानते हैं।
क्या आपको निर्भरता इंजेक्शन का लाभ उठाने के लिए एक इंटरफ़ेस का उपयोग करके ActiveateItem का उपयोग करने का कोई तरीका मिला? फिलहाल, एकमात्र तरीका एक व्यूमोडेल उदाहरण पास करना और आईओसी के माध्यम से सेवाएं प्राप्त करना है? – Sascha