コード例 #1
0
        public ContainerMiddleware(
            RequestDelegate next,
            IServiceProvider rootServiceProvider,
            IContextAccessor <HttpContext> rootHttpContextAccessor,
            IServiceScopeFactory rootServiceScopeFactory)
        {
            if (rootServiceProvider == null)
            {
                throw new ArgumentNullException("rootServiceProvider");
            }
            if (rootHttpContextAccessor == null)
            {
                throw new ArgumentNullException("rootHttpContextAccessor");
            }
            if (rootServiceScopeFactory == null)
            {
                throw new ArgumentNullException("rootServiceScopeFactory");
            }

            _next = next;
            _rootServiceProvider     = rootServiceProvider;
            _rootServiceScopeFactory = rootServiceScopeFactory;
            _rootHttpContextAccessor = rootHttpContextAccessor;

            _rootHttpContextAccessor.SetContextSource(AccessRootHttpContext, ExchangeRootHttpContext);
        }