2009-11-07 13 views
6

क्या एन इंजेक्ट में ऐसी सुविधाएं हैं जो मुझे मांग पर अन्य मॉड्यूल (असेंबली) से सेवाओं को लोड करने की अनुमति देगी जैसे कि यह एकता में किया गया है?मांग पर मॉड्यूल/असेंबली लोड इंजेक्ट कर सकते हैं?

+0

मुझे लगता है कि मुझे समझ में नहीं आता कि आपका क्या मतलब है। आप एकता में "अन्य असेंबली से सेवाओं को कैसे लोड करते हैं"? – Konamiman

उत्तर

0

यदि आप असेंबली को गैर-स्थैतिक रूप से बॉक्स से बाहर लोड करने का जिक्र कर रहे हैं, तो ऐसा नहीं होता है।

इस पर कई अन्य सवाल, जैसे हैं, Using Ninject in a plugin like architecture

12

मैं बहुत यकीन है कि यह आप के लिए क्या देख रहे है कर रहा हूँ:

var kernel = new StandardKernel(); 
kernel.Load(Assembly.Load("yourpath_to_assembly.dll"); 

आप Ninject में परावर्तक साथ KernelBase को देखें, तो। dll आपको लगता है कि इस कॉल रिकर्सिवली लोड विधानसभाओं में सभी मॉड्यूल लोड होगा देखेंगे (लोड विधि एक IEnumerable लेता है)

public void Load(IEnumerable<Assembly> assemblies) 
{ 
    foreach (Assembly assembly in assemblies) 
    { 
     this.Load(assembly.GetNinjectModules()); 
    } 
} 
3

मैं काफी के तहत नहीं है "एकता की तरह" से आपका क्या मतलब है, लेकिन आप असेंबली लोड करने के लिए कुछ अलग-अलग चीजें कर सकते हैं। Ninject खुद डिफ़ॉल्ट रूप से एक्सटेंशन/प्लगइन्स के लिए स्थानीय असेंबली लोड करेगा। Ninject असेंबली से NinjectModule वर्ग भी लोड कर सकते हैं। यदि आप कुछ और जटिल करना चाहते हैं, तो आप Ninject.Extensions.Conventions प्रोजेक्ट का उपयोग कई स्कैनिंग और बाइंडिंग टाइप करने के लिए कर सकते हैं।

+0

क्या आप निनजेक "असेंबली से निनजेक्शन मॉड्यूल लोड लोड" बनाने के बारे में अधिक जानकारी प्रदान कर सकते हैं? निनजेक्ट की विकी में बहुत बुनियादी चीजें शामिल हैं। –

+0

ठीक है, मुझे अब मिल गया, मैंने अपनी परियोजना में निनजेक संस्करणों को मिश्रित किया। –

+0

गिटहब के लिए प्रदान किया गया लिंक टूटा हुआ है। वास्तविक लिंक https://github.com/ninject/Ninject.Extensions.Conventions है। – realsonic

संबंधित मुद्दे