using System.Web.Http; using Microsoft.Practices.Unity.WebApi; using Microsoft.Web.Infrastructure.DynamicModuleHelper; using Microsoft.Practices.Unity.Mvc; [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(MyCode.Project.WebApi.App_Start.UnityWebApiActivator), "Start")] [assembly: WebActivatorEx.ApplicationShutdownMethod(typeof(MyCode.Project.WebApi.App_Start.UnityWebApiActivator), "Shutdown")] namespace MyCode.Project.WebApi.App_Start { /// Provides the bootstrapping for integrating Unity with WebApi when it is hosted in ASP.NET public static class UnityWebApiActivator { /// Integrates Unity when the application starts. public static void Start() { // Use UnityHierarchicalDependencyResolver if you want to use a new child container for each IHttpController resolution. // var resolver = new UnityHierarchicalDependencyResolver(UnityConfig.GetConfiguredContainer()); var resolver = new Microsoft.Practices.Unity.WebApi.UnityDependencyResolver(UnityConfig.GetConfiguredContainer()); GlobalConfiguration.Configuration.DependencyResolver = resolver; DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule)); } /// Disposes the Unity container when the application is shut down. public static void Shutdown() { var container = UnityConfig.GetConfiguredContainer(); container.Dispose(); } } }