Après la migration vers .NET Core 3.0. J'ai des problèmes pour configurer Swagger.
Voici ma configuration.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_3_0).AddNewtonsoftJson();
services.AddSwaggerGen(setup =>
{
setup.SwaggerDoc(
"v1",
new Info
{
Title = "Docker",
Version = "v1"
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
Configuration.SwaggerOptions swaggerOptions = new Configuration.SwaggerOptions();
_configuration.GetSection("SwaggerOptions").Bind(swaggerOptions);
app.UseSwagger(options =>
{
options.RouteTemplate = swaggerOptions.JsonRoot;
});
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint(swaggerOptions.UiEndpoint, swaggerOptions.ApiDescription);
});
}
Voici l'exception
TypeLoadException: impossible de charger le type "Microsoft.AspNetCore.Mvc.MvcJsonOptions" à partir de l'assembly "Microsoft.AspNetCore.Mvc.Formatters.Json
Y a-t-il une solution à cela?
Il y a une discussion sur le référentiel github aspnet/AspNetCore en discutant: Restaurer MvcJsonOptions vers ASP.NET Core 3.0 en tant que type avant?
Cela suggère que le problème a été résolu.
Je suggère de vous assurer que le dernier package Swashbuckle.AspnetCore est installé: https://www.nuget.org/packages/Swashbuckle.AspNetCore/
Dans les documents de base officiels asp.net, il indique:
Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc2
Je suggère donc que vous ayez besoin d'installer une version préliminaire , au moment de l'écriture, seulement 4.X est stable et 5.0.0-rc3 est le dernier.
In Net Core 3.0:
J'essayais de configurer le ReferenceLoopHandling
et pour moi la réponse sélectionnée n'a pas fonctionné, j'ai donc trouvé cette alternative, dans les ConfigureServices veuillez ajouter:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
}