示例#1
0
        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());
        }