2012-05-23 65 views
1

我正在使用Ninject.MVC3。Ninject屬性或構造注入ASP.NET MVC3

private static void RegisterServices(IKernel kernel) 
{ 
    kernel.Bind<Repository>().To<Repository>(); 
}  

在App_Start中像這樣註冊它們。 它在請求此存儲庫的控制器上工作得很好。 但是我也有一些需要這個倉庫的類。

 [Inject] 
     public MemberShipService(Repository repository) 
     { 
      this.Repository = repository; 
     } 

^來自類構造函數的示例。 我試過構造函數注入這只是給我錯誤,因爲它請求構造函數的參數。 屬性注入根本不起作用。

我是否需要做額外的事情才能在asp.net mvc3中進行構造函數或屬性注入工作?我沒有在NinjectWebCommon裏面做任何其他的配置,除了我上面發佈的那一行。

+0

你如何檢索這個'MemberShipService'類的實例? '[Inject]'屬性用於properties =>它對構造函數沒有影響。 –

回答

3

你需要解決才能使用它使用依賴解析器的類的實例,使用創建MemberShipService的一個實例:

var memberShipService = 
    DependencyResolver.Current.GetService(typeof(MemberShipService)) as MemberShipService; 

將結合使用你的構造你的實例變量Repository那你指定。

+0

謝謝你完美的作品。 – Nick

+0

沒問題,很高興我可以幫忙 – mattytommo