web-dev-qa-db-fra.com

Aucun constructeur pour le type SwaggerGenerator ne peut être instancié à l'aide des services du conteneur de services et des valeurs par défaut

J'essaie d'ajouter Swagger à mon projet. L'erreur reçue est la suivante.

Aucun constructeur pour le type "Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator" ne peut être instancié à l'aide des services du conteneur de services et des valeurs par défaut.

Comme je n'ai rien changé dans les binaires Swagger eux-mêmes, j'ai juste installé les packages Swashbuckle.AspNetCore et Swashbuckle.AspNetCore .Swagger (les deux dans la version 4.0.1) Je suppose qu'il s'agit de la configuration. Suite à la suggestion ici , j'ai mis en place la configuration montrée ci-dessous.

services.AddSwaggerGen(_ =>
{
  _.SwaggerDoc("v1", new Info { Version = "v1", Title = "My API" });
});

app.UseSwagger();
app.UseSwaggerUI(_ => { _.SwaggerEndpoint("/swagger/v1/swagger.json", "API docs"); });

Je ne sais pas s'il me manque un paquet, si l'un de ceux que j'ai est la mauvaise version ou si la configuration d'ensemble que je fournis n'est pas suffisante.

18
DonkeyBanana

Comme l'a demandé le demandeur dans un commentaire, ce qui a résolu cela pour moi, c'est l'ajout d'une référence à Api Explorer dans ConfigureServices.

Plus précisément, la ligne requise était:

services.AddMvcCore()
        .AddApiExplorer();
30
T S Taylor

Vous devez enregistrer services.AddMvc(); dans IServiceCollection et configurer app.UseMvc() dans IApplicationBuilder dans le Startup.cs De votre application

0
Annunaki_Selva