2011-01-10 20 views
5

szukałem w Internecie dla dowolnej próbki lub uzyskania artykułu, jak wykonać powiązanie z Ninject przy użyciu rozszerzenia XML, ale nie mogłem znaleźć żadnej pomocy! ,Konfiguracja Ninject i XML Wiązanie

Czy każdy organ może dostarczyć mi bardzo małą próbkę, w jaki sposób mogę to zrobić?

góry dzięki

Odpowiedz

3

nie mogę znaleźć żadnych przykładów albo, ale szczerze kod źródłowy jest bardzo mały - Chciałbym tylko pobrać (here) i zapoznać się z przypadków testowych.

Projekt Test Urządzenie posiada kilka przykładów, jak to:

<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> 

To nie wydaje się być bardzo silny. Jako someone else pointed out, punktem NInject jest "uwolnić się od XML".

+0

gdzie wykorzystuje to w pliku web.config, w ramach którego elementem dominującym robi to wchodzi w? – Yasser

2

Ich jedyna dokumentacja pokazuje, jak wygląda konfiguracja xml, ale nie podają przykładu, jak ją załadować, więc tutaj jest prosty przykład pokazujący obie części układanki.

konfiguracyjnym XML

Byłby w pliku o nazwie NinjectModules.xml. Aby znaleźć typ, musiałem nadać mu kwalifikowaną nazwę zespołu, mimo że wszystko było w jednym .exe.

<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> 

Ładowanie Config

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

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

Got rozwiązanie:

Nie zapomnij ustawić Kopiuj do wyjścia z pliku XML własności Informator tego pliku do kopiowania czy nowsza , aby można go było automatycznie skopiować do katalogu wyjściowego . dłużej, zobacz ten PDF

0

Po straciłem sobotę i przeglądu Ninject.Extensions.Xml źródło, I rozwiązać mój problem:

(...) 
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... :)