After migrating to .NET Core 3.0. I'm having issues configuring swagger.
Following is my 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);
});
}
Following is the exception
TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.MvcJsonOptions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json
Is there a solution for this ?
There is a discussion on the aspnet/AspNetCore github repo discussing this: Restore MvcJsonOptions to ASP.NET Core 3.0 as a type forward?
It suggests the issue was resolved.
I'd suggest ensuring you have the latest Swashbuckle.AspnetCore package installed: https://www.nuget.org/packages/Swashbuckle.AspNetCore/
In the offical asp.net core docs, it states:
Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc2
So I'd suggest you need to install a pre-release version, at the time of writing only 4.X is stable and 5.0.0-rc3 is the latest.