2009-11-07 15 views

Odpowiedz

12

Jestem całkiem pewien, że to jest to, czego szukasz:

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

Jeśli spojrzeć na KernelBase z odbłyśnikiem w Ninject. dll widać, że ta rozmowa będzie rekurencyjnie załadowanie wszystkich modułów załadowanych zespołów (metoda ładowania trwa IEnumerable)

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

nie bardzo pod zobacz co masz na myśli przez "Like Unity", ale możesz zrobić kilka różnych rzeczy do ładowania złożeń. Sam Ninject będzie domyślnie ładował lokalne zestawy dla rozszerzeń/wtyczek. Ninject może również ładować klasy NinjectModule ze złożeń. Jeśli chcesz zrobić coś bardziej złożonego, możesz użyć projektu Ninject.Extensions.Conventions, aby wykonać wiele różnych skanowania i wiązania tekstu.

+0

Czy możesz podać więcej szczegółów na temat tworzenia Ninject "ładuj klasy NinjectModule ze złożeń"? Wiki Ninject obejmuje dość podstawowe rzeczy. –

+0

Ok, mam to teraz, ja mieszałem wersje Ninject w moim projekcie. –

+0

Podany link do GitHub jest uszkodzony. Rzeczywisty link to https://github.com/ninject/Ninject.Extensions.Conventions. – realsonic