Tek yolu, tüm örnekleri kernel.GetAll<IController>()
kullanarak elde etmektir. Ninject, bir dizi ciltleme eşlemesi içermiyor. Uygulama, enjeksiyonlar yoluyla çözüldüğünde veya çağrı alındığında belirlenir. Bunun nedeni, Ninject'in koşullu ve örtülü bağlamaları sağlamasıdır.
Bir MVC3 uygulaması kurarsanız, hangi denetleyicinin yükleneceğini ve ne enjekte edileceğini belirleyeceği için denetleyicilerinizi gerçekten kaydetmezsiniz. Bu, gizli bir bağlayıcı bağ oluşturarak bunu yapar.
Gelebilecek en yakın nokta StandardKernel
ürününü genişletmek ve korunan cilt kümesine erişmek ve koşullu olmayan tüm bağlamaları bulmaktır. Şartlı olmayan tüm bağlamaları aldığınızda, ciltlemeyi ayırabilirsiniz, ancak tam olarak StandardProvider
sınıfının arkasına gizlenmiş olabileceklerini hatırlayamıyorum.
Belirli bir arabirim için kesin ciltleme yapılandırmasını bilmeniz gereken şeyi ne yapıyorsunuz?
Bunun sonsuza kadar sürdüğünün farkındayım, ama buna ihtiyacım olan tek bir yer var: Ben, WCF için bir Ninject tabanlı ServiceHost yapıyorum. ServiceHost yapıcısını, servis arayüzünü değil, somut hizmet uygulamasının tipini beslemem gerekiyor. –