在MVC控制器操作中获取Unity容器引用

时间:2017-12-13 14:32:17

标签: asp.net asp.net-mvc model-view-controller unity-container

是否可以获取用于解析MVC控制器的Contructor注入的paraeters的统一容器的引用?

我需要当前使用容器的引用,因为我们有使用它的类。

我试图通过将容器实例存储在MvcApplication类的属性中来保存Application_Start()类中MvcApplication处理程序中已注册的引用,但是当我尝试访问时它是null它稍后在控制器中。

容器的注册方式如下:

DependencyResolver.SetResolver(new UnityDependencyResolver(CurrentUnityContainer));

前提是CurrentUnityContainer是MvcApplication类中的非静态属性

然后,在控制器中我们尝试通过访问当前的MvcApplication实例来获取它:

MvcApplication.Instance.CurrentUnityContainer

任何想法为什么容器在控制器中为空,或以其他方式获取它?

1 个答案:

答案 0 :(得分:0)

您可以通过System.Web.Mvc.DependencyResolver.Current静态属性访问依赖项解析程序。

但要注意Service Locator反模式。