NInject'te Unity'de yapıldığı gibi diğer modüllerden (meclisler) hizmet almamı sağlayacak imkanlar var mı?NInject isteğe bağlı olarak yük modülleri/montajları yapabilir mi?
cevap
Montajları statik olmayan şekilde kutudan yükleme konusunda uyarıyorsanız, hayır.
mesela bu konuda birçok soru vardır, Using Ninject in a plugin like architecture
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());
}
}
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.
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. –
Tamam, şimdi anladım, projemde Ninject versiyonlarını karıştırdım. –
GitHub'a sağlanan bağlantı bozuk. Gerçek bağlantı https://github.com/ninject/Ninject.Extensions.Conventions. – realsonic
Sanırım ne demek istediğimi anlamıyorum. Unity'de "diğer meclislerden hizmetleri nasıl yüklersiniz?" – Konamiman