我正在尝试找到PerRequestLifetimeManager。在MSDN中,it says that it is part of the Unity 3 assembly.
我已经通过Nuget安装了Unity.Mvc4。 package.config说我正在使用Unity 3.0:
Microsoft.Practices.Unity.dll 表示我使用的是Unity 3.0
我使用对象浏览器查看了DLL内部, PerRequestLifetimeManager 无法找到。
我在这里错过了什么吗?
如果有人会建议替代课程,我打算使用自定义的PerRequestLifetimeManager here(如果我找不到该课程)。
修改
我已经卸载了Unity.Mvc4并直接在包控制台中安装了Unity3.0,这是我得到的:
PM> Install-Package Unity -version 3.0.1304.1
'Unity 3.0.1304.1' already installed.
Successfully added 'Unity 3.0.1304.1' to RedLions.Presentation.Web.
我仍然无法找到PerRequestLifetimeManager类,即使在官方库中也是如此。
答案 0 :(得分:26)
当我自己做这件事时,回答我自己的问题似乎不太好。我再也无法删除我的问题了。
无论如何,这是我的解决方案。
我直接看到Unity的源代码,我发现类确实存在在同一个命名空间中但不在同一个程序集中。 PerRequestLifetimeManager位于 Microsoft.Practices.Unity.Mvc
我检查了MSDN,它 说它在一个不同的DLL中,我没注意到。对不起。
它不是nuget中Unity包的一部分,但是在Nuget(Unity.Mvc)的另一个包中,所以这里是:http://www.nuget.org/packages/Unity.Mvc/
我决定转发Unity.Mvc4,因为它不再需要,所有内容都已经在Unity.Mvc中了。 (App_Start / UnityConfig.cs)
答案 1 :(得分:1)
您可以删除原始DLLS并卸载重新安装。
答案 2 :(得分:1)
从PCM,程序包管理器控制台运行以下命令:
Install-Package Unity.Mvc
这将为您提供DLL Microsoft.Practices.Unity.Mvc
所在的位置。