2012-12-24 36 views
0

我想爲ASP.NET MVC Web應用程序使用Ninject for IoC。我有以下的代碼示例:Ninject太侵擾?

// resides in a MyApplication.Web assembly 
public class SomeController { 
    ... 
    public ActionResult myControllerAction() { 
    Service service = <--- should this be instantiated by Ninject? 
    service.doSomeLogic(); 
    ... 
    } 
} 

// resides MyApplication.Common assembly 
public class Service { 
    public void doSomeLogic() { 
    ... 
    } 
} 

我擔心的是,我不希望這兩個組件,以對Ninject的依賴,如果可能的話。在我看來,我想讓.Web項目對Ninject有一個依賴關係,而不是.Common程序集。

什麼是這裏使用的策略是什麼?

回答

3

正在創建的服務不需要對Ninject的依賴。只有web項目需要這個。你可能應該在控制器上使用構造器注入(如果它還有依賴關係,則使用Service)。你可以通過global.asax將它們連接到你的web項目中,或者更有可能從那裏調用一個配置類。使用Ninject NuGet package for MVC,按照examples配置您的服務。

public class SomeController { 

    private readonly Service _service; 

    public SomeController(Service service) 
    { 
     _service = service; 
    } 

    public ActionResult myControllerAction() { 
    _service.doSomeLogic(); 
    ... 
    } 
} 
+0

我很喜歡這個答案,有沒有一個具體的例子,如何在全局asax中構造函數注入接線? –