У меня есть следующий метод конструкции Unity:
public static IUnityContainer CreateContainer()
{
UnityContainer container = new UnityContainer();
container.LoadConfiguration();
.......
}
Затем интерфейс и класс реализации:
namespace MyCompany.Web.Areas.MyApp.Common
{
public interface ISession
{
}
}
namespace MyCompany.Web.Areas.MyApp.Common
{
public class SessionHandler : ISession
{
}
}
Вместо этого:
Container.RegisterType<ISession, SessionHandler>(new ContainerControlledLifetimeManager()) ;
Я хочу использовать container.LoadConfiguration () для загрузки вышеуказанной конфигурации RegisterType из web.config. НО, похоже, не работает
web.config:
<unity>
<containers>
<container>
<types>
<type type="MyCompany.Web.Areas.MyApp.Common.ISession" mapTo="MyCompany.Web.Areas.MyApp.Common.SessionHandler">
<lifetime type="singleton"/>
</type>
</types>
</container>
</containers>
</unity>
Исключение:
Имя типаили псевдоним MyProject.Web.Areas.MyApp.Common.ISession не может быть разрешен.Пожалуйста, проверьте ваш конфигурационный файл и проверьте это имя типа.
Описание: Произошло необработанное исключение во время выполнения текущего веб-запроса.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.InvalidOperationException: имя типа или псевдоним MyProject.Web.Areas.MyApp.Common.ISession не может быть разрешен.Пожалуйста, проверьте ваш файл конфигурации и проверьте имя этого типа.
Ошибка источника:
Строка 33: {Строка 34: контейнер UnityContainer = new UnityContainer ();Строка 35: container.LoadConfiguration ();Строка 36: Строка 37: //container.RegisterType(new ContainerControlledLifetimeManager ());
Трассировка стека:
[InvalidOperationException: имя типа или псевдонимMyProject.Web.Areas.MyApp.Common.ISession не может быть решена.Пожалуйста, проверьте ваш файл конфигурации и проверьте это имя типа.]Src \ ConfigurationHelpers \ TypeResolverImpl.cs: 110 Microsoft.Practices.Unity.Configuration.ConfigurationHelpers.TypeResolver.ResolveType (String typeNameOrAlias) в e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unityr.cs: 47 Microsoft.Practices.Unity.Configuration.RegisterElement.GetRegisteringType () в e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ RegisterElement.cs: 121 Microsoft.Practices.Unity.Configuration.RegisterElement.ConfigureContainer (контейнер IUnityContainer) в каталоге e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ RegisterElement.cs: 88 Microsoft.Practices.Unity.Configuration.ContainerConfiguringElement.ConfigureContainerInternal (IUnityControlконтейнер ainer) в e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ ContainerConfiguringElement.cs: 43 Microsoft.Practices.Unity.Configuration. <> c__DisplayClass1.b__0 (элемент ContainerConfiguringElement) в e: \ Builds\ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ ContainerElement.cs: 114 Microsoft.Practices.ObjectBuilder2.EnumerableExtensions.ForEach (действие IEnumerable 1 sequence, Action
1) в e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity\ Unity \ Src \ ObjectBuilder \ Utility \ EnumerableExtensions.cs: 36 Microsoft.Practices.Unity.Configuration.ContainerElement.ConfigureContainer (контейнер IUnityContainer) в каталоге e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity. Unity.Configuration \ Slecment.cs: 110 Microsoft.Practices.Unity.Configuration.UnityConfigurationSection.Configure (контейнер IUnityContainer, строка configContainerName строки) в e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ UnityConfigurationSection.cs: 151.Unity.Configuration.UnityContainerExtensions.LoadConfiguration (контейнер IUnityContainer, раздел UnityConfigurationSection, String containerName) в каталоге e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ UnityContainerExtensions.cs: 37 Microsoft.Practices.Unity.Configuration.UnityContainoContainerContainer ()) в e: \ Builds \ Unity \ UnityTemp \ Compile \ Unity \ Unity.Configuration \ Src \ UnityContainerExtensions.cs: 64MyProject.Web.ApplicationContainer.CreateContainer () в C: \ Workspace \ MCDev \ MyApp \ MyApp \ MyProject.Web \ ApplicationContainer.cs: 35 MyProject.Web.ApplicationContainer.Initialize (контекст HttpContext) в C: \ Workspace \ MCDev\ MyApp \ MyProject.Web \ ApplicationContainer.cs: 53 MyProject.Web.MvcApplication.Application_Start () в C: \ Workspace \ MCDev \ MyApp \ MyApp \ MyProject.Web \ Global.asax.cs: 41