/// <summary> /// /// </summary> /// <param name="app"></param> public static void Initialize(IAppBuilder app) { var container = new Container(); container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle(); SimpleInjectorBootstrap.RegistersDependencies(container); container.RegisterWebApiControllers(GlobalConfiguration.Configuration); ServiceLocator.SetLocatorProvider(() => new SimpleInjectorServiceLocator(container)); var mapper = AutoMapperConfig.CreateMapperConfiguration(); container.RegisterInstance(mapper); container.Register(() => mapper.CreateMapper(container.GetInstance), Lifestyle.Scoped); container.Verify(); GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container); app.Use(async(context, next) => { using (AsyncScopedLifestyle.BeginScope(container)) { await next?.Invoke(); } }); }
public static void Initialize() { var container = new Container(); container.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); SimpleInjectorBootstrap.RegistersDependencies(container); container.RegisterMvcControllers(Assembly.GetExecutingAssembly()); ServiceLocator.SetLocatorProvider(() => new SimpleInjectorServiceLocator(container)); var mapper = AutoMapperConfig.CreateMapperConfiguration(); container.RegisterInstance(mapper); container.Register(() => mapper.CreateMapper(container.GetInstance), Lifestyle.Scoped); container.Verify(); DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); }