示例#1
0
        /// <summary>Initializes a new instance of the <see cref="WebApiToSwaggerMiddleware"/> class.</summary>
        /// <param name="nextDelegate">The next delegate.</param>
        public SwaggerMiddleware(RequestDelegate nextDelegate, IServiceProvider serviceProvider, string documentName, string path, SwaggerMiddlewareSettings settings)
        {
            _nextDelegate = nextDelegate;
            _documentName = documentName;
            _path         = path;

            _apiDescriptionGroupCollectionProvider = serviceProvider.GetService <IApiDescriptionGroupCollectionProvider>() ??
                                                     throw new InvalidOperationException("API Explorer not registered in DI.");
            _documentProvider = serviceProvider.GetService <SwaggerDocumentProvider>() ??
                                throw new InvalidOperationException("The NSwag DI services are not registered: Call " + nameof(NSwagServiceCollectionExtensions.AddSwagger) + "() in ConfigureServices().");

            _settings = settings;
        }