/// <summary>Constructs a new instance of <see cref="HttpContextScopeHttpModule"/>. This constructor is invoked by the ASP.NET runtime which uses the <see cref="HttpRuntime.WebObjectActivator"/> to provide the constructor parameters.</summary>
        public HttpContextScopeHttpModule(IServiceProviderAccessor rootServiceProviderAccessor)
        {
            if (rootServiceProviderAccessor == null)
            {
                throw new ArgumentNullException(nameof(rootServiceProviderAccessor));
            }

            this.config = rootServiceProviderAccessor.Configuration ?? throw new ArgumentException(message: "The " + nameof(rootServiceProviderAccessor.Configuration) + " property returned null.", paramName: nameof(rootServiceProviderAccessor));
            this.rootServiceProvider = rootServiceProviderAccessor.RootServiceProvider ?? throw new ArgumentException(message: "The " + nameof(rootServiceProviderAccessor.RootServiceProvider) + " property returned null.", paramName: nameof(rootServiceProviderAccessor));
        }
 /// <summary>Constructs a new instance of <see cref="DefaultServiceProviderAccessor"/>.</summary>
 public DefaultServiceProviderAccessor(ImmutableApplicationDependencyInjectionConfiguration configuration, IServiceProvider rootServiceProvider)
 {
     this.Configuration       = configuration ?? throw new ArgumentNullException(nameof(configuration));
     this.RootServiceProvider = rootServiceProvider ?? throw new ArgumentNullException(nameof(rootServiceProvider));
 }