using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Web.Mvc; using Unity.AspNet.Mvc; [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(Admin.UnityMvcActivator), nameof(Admin.UnityMvcActivator.Start))] [assembly: WebActivatorEx.ApplicationShutdownMethod(typeof(Admin.UnityMvcActivator), nameof(Admin.UnityMvcActivator.Shutdown))] namespace Admin { /// /// Provides the bootstrapping for integrating Unity with ASP.NET MVC. /// [ExcludeFromCodeCoverage] public static class UnityMvcActivator { /// /// Integrates Unity when the application starts. /// public static void Start() { FilterProviders.Providers.Remove(FilterProviders.Providers.OfType().First()); FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(UnityConfig.Container)); DependencyResolver.SetResolver(new UnityDependencyResolver(UnityConfig.Container)); // Uncomment if you want to use PerRequestLifetimeManager //Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); } /// /// Disposes the Unity container when the application is shut down. /// public static void Shutdown() { UnityConfig.Container.Dispose(); } } }