size geçersiz Yük yöntemi içinde bir Ninject modülü içinde bağlayıcı kodu çalıştıran yaptığından emin olmak için gereken ilk şey. Örneğin
:
public class ApplicationModule : NinjectModule {
public override void Load() {
Bind<IWeapon>().To<Sword>();
// additional bindings continue ...
}
}
NinjectModule sınıfı bu yüzden sınıf kapsamında Bind<T>()
yöntem kullanılabilir hale Ninject akıcı bağlanma sözdizimi tanımlayan sınıfları ve arabirimler devralır. çekirdek örneği zaman bu modülleri daha sonra Ninject çekirdeğe geçirilen:
var kernel = new StandardKernel(new ApplicationModule());
çekirdeğe geçirilen her bir modülün Load()
Yöntem, daha sonra çağrılır ve bağlayıcı tanımlar çalıştırılan yöntemler içinde ihtiva etmiştir.
Yukarıdaki örnekte, temel sınıf olarak NinjectModule belirtir; Ancak, bu, Ninject'in 2.0 sürümüne özgüdür. Eğer Ninject 1.x kullanıyorsanız, temel sınıfınız StandardModule
olacaktır. Her iki durumda da, yük yöntemi geçersizdir ve burada her iki sürümde de benzer olan bağlayıcı ifadeler verilir.
daha da soruya cevap vermek için:
Ninject 1.x için gerekli DLL ninject.core.dll ve StandardModule tanımlanan ad Ninject.Core olduğunu.
Ninhect 2.0 için gerekli DLL, ninject.dll ve NinjectModule'nin tanımlandığı ad alanı, Ninject.Modules'tır. Eğer Ninject 1.x durumunda vb bağlamsal bağlamaları veya kapsam da bağlamaları, kullanırsanız, yani - Her iki durumda da
, size bağlayıcı ifadeler almak ne kadar karmaşık bağlı olarak daha fazla ad alanlarını başvurmak gerekebilir Daha karmaşık durumlar için Ninject.Conditions.dll dosyasına başvurmanız gerekebilir. Bir 1.x çekirdek özelliği ancak sürüm 2.0 bir uzantısıdır -
Sen Ninject en durdurma özelliğini kullanarak sürece Castle.Core başvurmak gerekmez.
Bu yardımcı olur umarım.
Teşekkürler. Seni sadece bir kez çarpıtabilirim ve bunu daha fazlasını yapabilmeyi dilediğim doğru cevap olarak seçebilirim. Bütün öğleden sonra uğraştım. Her şeyin bir arada asılı kaldığı hakkında belgeler var ama senaryo için bir şey bulmaya çalıştım. Arama sonucuna gittiğimde, çalışmaya başladığınız diğer dersler eksik görünüyordu. – uriDium
Hey, sorun değil! Ninject'i biraz kullanıyorum ve tüm IoC kapsayıcılarını karşılaştırırken uzun zamandır mücadele ettim. Yardımcı olduğuma sevindim. –