2012-07-19 108 views
0

请让我先说这个,说我对Unity不是很熟悉。我知道这是一个依赖注入容器,我理解的程度有限。我继承了一个使用Unity的应用程序,尽管它似乎并没有被正确实现。在之前的开发者使用下面的代码来实例化的统一性对象,然后坚持它在整个会议的global.asasession_start在会话中存储UnityManager

var unity = new UnityManager(new UnityContainer()); 
Session["UnityManager"] = unity; 

据我所知不会这本身引起的并发问题?任何人都可以提供一个如何正确实现统一的例子,或者如果这是正确的,向我解释为什么这是这样吗?

+0

http://weblogs.asp.net/shijuvarghese/archive/2011/01/21/dependency-injection-in-asp-net- MVC -3-使用-dependencyresolver和 - controlleractivator.aspx – jrummell 2012-07-19 12:59:02

回答

0

如果您使用mvc,您可以删除会话并从nuget包管理器安装unity.mvc3。它与mvc4兼容并以正确的方式为您设置。你可以把现有的映射放在bootstrapper.cs中(自动安装)

基本上你想在global.asax中有1个静态变量来访问unity。因此,你可以取代所有这些

var unitycontainer = Session["UnityManager"]; 
unitycontainer.resolve<>... 

MVCApplication.Container.Resolve<> ..