2009-11-07 20 views

cevap

12

Bunun aradığınız budur eminim: Eğer Ninject içinde reflektör ile KernelBase bakarsak

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

. Eğer oldukça altında yok (Yük yöntemi bir IEnumerable sürer) Bu çağrı yinelemeli yüklenen derlemeleri tüm modülleri yüklemek edeceğini

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

göreceksiniz dll "Like Unity" ile kastettiğinize karşı durun ama yükleme meclisleri için birkaç farklı şey yapabilirsiniz. Ninject kendisi varsayılan olarak uzantılar/eklentiler için yerel meclisleri yükleyecektir. Ninject ayrıca, Assembly'ten NinjectModule sınıflarını da yükleyebilir. Daha karmaşık bir şey yapmak isterseniz, çok sayıda farklı tarama ve tip ciltleme yapmak için Ninject.Extensions.Conventions projesini kullanabilirsiniz.

+0

Ninject'in "Assembly'ten NinjectModule sınıflarını yükle" nasıl yapılacağı hakkında daha fazla bilgi verebilir misiniz? Ninja'nın wiki'si oldukça basit şeyleri kapsar. –

+0

Tamam, şimdi anladım, projemde Ninject versiyonlarını karıştırdım. –

+0

GitHub'a sağlanan bağlantı bozuk. Gerçek bağlantı https://github.com/ninject/Ninject.Extensions.Conventions. – realsonic