2011-01-10 11 views
5

मैं किसी भी नमूने के लिए इंटरनेट खोज रहा हूं या एक्सएमएल एक्सटेंशन का उपयोग करके निनजेक्ट के साथ बाध्यकारी करने के तरीके पर प्रारंभ लेख प्राप्त कर रहा हूं लेकिन मुझे कोई मदद नहीं मिली! ,निनजा और एक्सएमएल कॉन्फ़िगरेशन बाध्यकारी

क्या कोई भी शरीर मुझे एक छोटा सा नमूना प्रदान कर सकता है कि मैं यह कैसे कर सकता हूं? अग्रिम

उत्तर

3

में

धन्यवाद मैं या तो किसी भी उदाहरण नहीं मिल सकता है, लेकिन ईमानदारी से स्रोत कोड बहुत छोटा है - मैं तो बस डाउनलोड होगा (here) और परीक्षण मामलों के माध्यम से पढ़ें।

इकाई परीक्षण परियोजना कुछ उदाहरण, इस तरह है:

<module name="basicTest"> 
<bind name="melee" 
      service="Ninject.Extensions.Xml.Fakes.IWeapon, Ninject.Extensions.Xml.Test" 
      to="Ninject.Extensions.Xml.Fakes.Sword, Ninject.Extensions.Xml.Test" /> 
<bind name="range" 
      service="Ninject.Extensions.Xml.Fakes.IWeapon, Ninject.Extensions.Xml.Test" 
      to="Ninject.Extensions.Xml.Fakes.Shuriken, Ninject.Extensions.Xml.Test" /> 
</module> 

यह बहुत शक्तिशाली होने के लिए प्रतीत नहीं होता। someone else pointed out के रूप में, एन इंजेक्ट का बिंदु 'स्वयं को एक्सएमएल से मुक्त करें' है।

+0

जहां web.config में इस का उपयोग करने, जिसके तहत पेरेंट तत्व करता है यह अंदर जाता है? – Yasser

2

उनका एकमात्र दस्तावेज दिखाता है कि एक्सएमएल कॉन्फ़िगर कैसा दिखता है लेकिन वे इसे लोड करने का उदाहरण नहीं देते हैं, इसलिए यहां एक साधारण उदाहरण है जो पहेली के दोनों टुकड़े दिखाता है।

Xml कॉन्फ़िग

यह NinjectModules.xml नामक एक फाइल में होगा। इस प्रकार को ढूंढने के लिए, मुझे इसे असेंबली योग्य नाम देना था, भले ही सब कुछ एक .exe में था।

मत भूलना अगर नए कॉपी करने के लिए इस फ़ाइल का अपने xml फ़ाइल निर्देशिका संपत्ति के आउटपुट को कॉपी स्थापित करने के लिए:

<module name="SomeModule"> 
    <bind 
    service="Birds.IOwl, Birds, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 
    to="Birds.SlowOwl, Birds, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
</module> 

लोड हो रहा है कॉन्फ़िग

IKernel kernel = new StandardKernel(); 
kernel.Load("c:\path\to\NinjectModules.xml"); 

IOwl owl = kernel.Get<IOwl>(); 
owl.Fly(); 
-1

समाधान मिल गया , ताकि इसे स्वचालित रूप से आउटपुट निर्देशिका में कॉपी किया जा सके। अधिक के लिए , इस PDF

0

मेरी शनिवार हार के बाद देख सकते हैं और Ninject.Extensions.Xml स्रोत की समीक्षा, मैं अपने समस्या का समाधान:

(...) 
var settings = new NinjectSettings { LoadExtensions = false }; 
kernel = new StandardKernel(settings, new XmlExtensionModule()); 
kernel.Load(@"C:\DEV\FSENQUETE\invista.xml"); 
//kernel.GetModules().Count() --> Ok! Result 34 modules... :) 
संबंधित मुद्दे