2010-11-27 22 views
6

Tüm denetleyicilerin gezinme ve ana sayfanın ihtiyaç duyduğu diğer bilgileri ayarlamak için devraldığı bir temel denetleyici kullanan varolan bir MVC 2 uygulamasında Ninject bağımlılık enjeksiyonunu uyguluyorum. Bir denetleyiciyi, temel denetleyiciden devralırken, aşağıdaki hatayı alıyorum: "... BaseController ', 0 argümanını alan bir kurucu içermiyor. Bu hatanın etrafından nasıl geçebilirim? Ninject’e yeniyim ve' t rakam bunu.MVC Ana Denetleyici ve Ninject

public class BaseController : Controller 
    { 
     private INavigationRepository navigationRepository; 
     private ISessionService sessionService; 


     public BaseController(INavigationRepository navigationRepository, IMembershipService membershipService, ISessionService sessionService) 
     { 
      this.navigationRepository = navigationRepository; 
      this.sessionService = sessionService; 
     } 
    } 


public class HomeController: BaseController 
    { ... } 

cevap

6

o ctor ekleme tek yön

public class BaseController : Controller 
{ 
    [Inject] 
    public INavigationRepository navigationRepository { get; set; } 
    [Inject] 
    public ISessionService sessionService { get; set; } 


} 
+0

mülkiyet enjeksiyonu ile gitti

public class HomeController: BaseController { public HomeController(INavigationRepository navigationRepository, IMembershipService membershipService, ISessionService sessionService) : base(navigationRepository, membershipService, sessionService) { } } 

veya maddi enjeksiyon olduğunu. çözümü için teşekkürler. – scottrakes

+2

mülkiyet enj ılım temiz değildir. Diğer yol yuvarlak. Mümkünse bağımlılıkları okumanız gerekiyor. –

+0

evet temizleyici yanlış kelime oldu ... tüm denetleyicilerinde ctor bildirmeniz gerekmediğinden daha kullanışlı. – dotjoe