MVC4'e bağlamak istediğim MVC3 uygulamasına sahibim. Bağımlılık enjeksiyonu için Ninject kullanıyorum. Nuget kullanarak, benim projeye "Ninject" eklendi ve bu MVC3 için çalışıyorNinject ve asp.net MVC4
public class NinjectControllerFactory : DefaultControllerFactory
{
private IKernel ninjectKernel;
public NinjectControllerFactory()
{
ninjectKernel = new StandardKernel();
AddBindings();
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);
}
private void AddBindings()
{
//Add ninject bindings here
}
}
aşağıda gösterilen ama işler MVC4 değişti gibi bir kontrolör fabrikası yarattı. Biraz araştırma yaptık ve ancak sorun derlemek için yukarıdaki bağlantıda kodunu alma yaşıyorum
http://haacked.com/archive/2012/03/11/itrsquos-the-little-things-about-asp-net-mvc-4.aspx
MVC4
için çalışan Ninject nasıl açıklıyor bu bağlantıyı buldum. Özellikle, ben web.common dosyasının Başlat() yönteminde yerleştirmek gerekiyor kod bana çözülmemiş olan çözülmemiş ad hatalarınıGlobalConfiguration.Configuration.ServiceResolver
.SetResolver(DependencyResolver.Current.ToServiceResolver());
"ServiceResolver" ve ".SetResolver" Hem verir. Bunları etkinleştirmek için hangi referansları eklemem gerekir? Ayrıca, mümkünse bana nuget paketi ninject.mvc3 yüklemek zorunda kalmadan MVC4'te nasıl çalıştığını gösteren bir öğretici bana doğru işaret edebilir misiniz? Soruyorum çünkü uygulamada MVC3 için yazılan paketlerin herhangi bir paketinin kurulmasını tercih etmem.
düzenleme: Ben Görsel stüdyo 2012 kullanıyorum ve .Net 4.5
Ben WebAPI ihtiyacım yok Nuget Şablonu'ndan "MVC3 için Ninject" "Ninject" değil yükleyin. Bağlantılarımı NinjectWebCommon.cs içinde nereye eklemeliyim? "Başlangıç" yönteminde? Ayrıca, uygulamamı bozan ninject.mvc3 paketindeki güncellemeler için herhangi bir potansiyel görüyor musunuz? Teşekkürler –
@curiouspanda - Güncellemeler her zaman bir şeyleri kırabilir ve Ninject, bununla çalışmanın "tercih edilen" yolunu değiştiren birkaç yinelemeden geçmiştir, ancak genel olarak kod uyumlu kalmalıdır. WebAPI kullanmıyorsanız, Phil'in makalesi geçerli değildir. Eşlemelerinizi NinjectWebCommon.cs RegisterServices yönteminde kaydedersiniz –