Произошло необработанное исключение типа «System.StackOverflowException» в System.Core.dll
В моем проекте Asp.net MVC
У меня есть загрузчик, который инициализирует контейнер для единства.
Я нене знаю почему, но я получаю
Необработанное исключение типа 'System.StackOverflowException» произошло в System.Core.dll
Я дважды проверил, и регистрация выполняется только в моем инициализаторе.
Все зависимости вводятся только в ctors.
Что могло вызвать это?
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
Initializer.Initialize();
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Это не удается послеBundleConfig.RegisterBundles(BundleTable.Bundles);
public static class Initializer
{
private static bool isInitialize;
private static readonly object LockObj = new object();
private static IUnityContainer defaultContainer = new UnityContainer();
static Initializer()
{
Initialize();
}
public static void Initialize()
{
if (isInitialize)
return;
lock (LockObj)
{
IUnityContainer container = defaultContainer;
//registering Unity for MVC
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
//registering Unity for web API
// GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
#region managers
container.RegisterType();
container.RegisterType();
container.RegisterType();
#endregion
#region Dals
container.RegisterType();
#endregion Dals
#region cache
container.RegisterType(new ContainerControlledLifetimeManager());
container.RegisterType(new ContainerControlledLifetimeManager());
container.RegisterType(new ContainerControlledLifetimeManager());
#endregion cache
#region Pollers
container.RegisterType(new ContainerControlledLifetimeManager());
container.RegisterType(new ContainerControlledLifetimeManager());
container.RegisterType(new ContainerControlledLifetimeManager());
#endregion Pollers
container.RegisterType(new ContainerControlledLifetimeManager());
container.RegisterType();
if (!isInitialize)
{
isInitialize = true;
}
}
}
}