迁移到 .NET Core 3.0 之后。我在配置 swagger 时遇到问题。
以下是我的配置。
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);
});
}
以下是异常(exception)情况
TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.MvcJsonOptions' from assembly 'Microsoft.AspNetCore.Mvc.Formatters.Json
有解决办法吗?
最佳答案
在 aspnet/AspNetCore github repo 上有一个讨论讨论这个:Restore MvcJsonOptions to ASP.NET Core 3.0 as a type forward?
这表明问题已解决。
我建议您确保安装了最新的 Swashbuckle.AspnetCore 包:https://www.nuget.org/packages/Swashbuckle.AspNetCore/
在官方的 asp.net 核心文档中,它指出:
安装包 Swashbuckle.AspNetCore -Version 5.0.0-rc2
所以我建议您需要安装一个预发布版本,在撰写本文时只有 4.X 是稳定的,而 5.0.0-rc3 是最新的。
关于c# - 迁移到 .NET Core 3.0 后 swagger 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084294/