2012-09-25 66 views
1

隨着MVC4的發佈,現在在Http命名空間中有webapi和IDependencyResolver接口,它爲每個請求使用IDependencyScope。這個dependencyScope在每個請求之後也被處理掉。只需在應用程序啓動時使用GlobalConfiguration.Configuration進行設置即可輕鬆進行設置。如何設置MVC4和WebApi中的依賴注入與處置?

對於「正常」的MVC控制器,這也是可能的嗎?有沒有類似的界面,還是隻需要在我的控制器或服務中進行處理?

回答

2

Web API包含此範圍機制的原因是因爲HTTP請求不能總是用作範圍,因爲Web API可以在自託管環境中運行,這意味着沒有HttpContext.Current

另一方面,'正常'MVC控制器將始終運行在Web環境中,因此總會有一個HttpContext可用,這意味着此機制可用作定義範圍的一種方式。這就是許多IoC容器提供的'Per Web Request'生活方式。換句話說,您的MVC應用程序不需要這個範圍,因爲它們總是可以使用「每個Web請求」的生活方式。