请让我先说明我对Unity不是很熟悉。我知道它是一个依赖注入容器,我在一定程度上理解这意味着什么。我继承了一个使用Unity的应用程序,尽管我似乎没有正确实现。在session_start
的{{1}}中,前一个开发人员使用以下代码来实例化unity对象,然后将其持续整个会话:
global.asa
据我所知,这不会导致并发问题吗?任何人都可以提供一个如何正确实现统一的例子,或者如果这是正确的解释为什么会这样?
答案 0 :(得分:0)
如果你正在使用mvc,你可以删除会话并从nuget包管理器安装unity.mvc3。它与mvc4兼容,并以正确的方式为您设置。您可以将现有映射放在bootstrapper.cs(自动安装)
中基本上你想在global.asax中有1个静态变量来访问unity。所以你可以替换所有这些
var unitycontainer = Session["UnityManager"];
unitycontainer.resolve<>...
与
MVCApplication.Container.Resolve<> ..