Beispiel #1
0
 private TestServer GetServer(DefaultExtensionsOptions options) =>
 new TestServer(
     new WebHostBuilder()
     .Configure(app =>
 {
     IFileProvider embeddedFileProvider = new ManifestEmbeddedFileProvider(AssemblyHelper.TestAssembly, "wwwroot");
     IWebHostEnvironment host           = app.ApplicationServices.GetService <IWebHostEnvironment>();
     host.WebRootFileProvider           = embeddedFileProvider;
     app
     .UseDefaultExtensions(options)
     .UseStaticFiles(new StaticFileOptions
     {
         RequestPath           = PathString.Empty,
         FileProvider          = embeddedFileProvider,
         ServeUnknownFileTypes = true
     });
 }));
    public DefaultExtensionsMiddleware(RequestDelegate next, IWebHostEnvironment hostingEnv, IOptions <DefaultExtensionsOptions> options, ILoggerFactory loggerFactory)
    {
        if (hostingEnv == null)
        {
            throw new ArgumentNullException(nameof(hostingEnv));
        }

        if (options == null)
        {
            throw new ArgumentNullException(nameof(options));
        }

        if (loggerFactory == null)
        {
            throw new ArgumentNullException(nameof(loggerFactory));
        }

        _next         = next ?? throw new ArgumentNullException(nameof(next));
        _fileProvider = hostingEnv.WebRootFileProvider;
        _options      = options.Value;
        _logger       = loggerFactory.CreateLogger <DefaultExtensionsMiddleware>();
    }
    public static IApplicationBuilder UseDefaultExtensions(this IApplicationBuilder app, DefaultExtensionsOptions options)
    {
        if (app == null)
        {
            throw new ArgumentNullException(nameof(app));
        }

        return(app.UseMiddleware <DefaultExtensionsMiddleware>(Options.Create(options)));
    }