Не удается найти класс PerRequestLifetimeManager в Unity.MVC4 или Unity (3.0)

Я пытаюсь найти PerRequestLifetimeManager. В MSDN говорится, что он является частью сборки Unity 3.

Я установил Unity.Mvc4 через Nuget. Pack.config говорит, что я использую Unity 3.0:

enter image description here

Microsoft.Practices.Unity.dll говорит, что я использую Unity 3.0

enter image description here

Я заглянул в DLL с помощью браузера объектов, а PerRequestLifetimeManager не найден.

Я что-то пропустил?

Если кто-то предложит альтернативный класс, я планирую использовать пользовательский PerRequestLifetimeManager, найденный здесь (если я не могу найти класс).

EDIT:

Я удалил 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, даже в официальной библиотеке.

Ответ 1

Кажется нехорошо отвечать на мой вопрос, когда я просто сделал это сам. Я больше не могу удалить свой вопрос.

В любом случае, вот мое решение.

Я пошел прямо к исходному коду Unity, я узнал, что класс существует в том же пространстве имен, но не в той же сборке. PerRequestLifetimeManager находится в Microsoft.Practices.Unity.Mvc

enter image description here

Я проверил MSDN, и он сказал, что это в другой DLL, чего я не заметил. Извините.

Это не часть пакета Unity в nuget, но в другом пакете в Nuget (Unity.Mvc), так что вот оно: http://www.nuget.org/packages/Unity.Mvc/

Я решил сбросить Unity.Mvc4, поскольку он больше не нужен, все уже есть в Unity.Mvc. (App_Start/UnityConfig.cs)

Ответ 2

вы можете удалить исходные DLLS и удалить переустановку.

Ответ 3

Выполните следующее из PCM, консоли диспетчера пакетов:

Install-Package Unity.Mvc

Это даст вам DLL Microsoft.Practices.Unity.Mvc, где он есть.