IContainer ConfigureDependencyInjection(IAppBuilder app, HttpConfiguration config) { var factoryProvider = new ContainerFactoryProvider(); var container = factoryProvider.GetContainer(config); var lifetimeScopeProvider = new OwinCompatibleLifetimeScopeProvider(container); DependencyResolver.SetResolver(new AutofacDependencyResolver(container, lifetimeScopeProvider)); return(container); }
public static IContainer GetContainer(this ContainerFactoryProvider provider, HttpConfiguration config) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } var diFactory = provider.GetContainerBuilderFactory() as IGetsAutofacContainerWithOverridableHttpConfiguration; if (diFactory == null) { throw new InvalidOperationException($"The configured container builder factory must implement {nameof(IGetsAutofacContainerWithOverridableHttpConfiguration)}."); } diFactory.HttpConfig = config ?? throw new ArgumentNullException(nameof(config)); return(diFactory.GetContainer()); }