c# - 迁移到 .NET Core 3.0 后 swagger 的问题

标签 c# asp.net-core swagger .net-core-3.0 asp.net-core-3.0

迁移到 .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

https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.0&tabs=visual-studio

所以我建议您需要安装一个预发布版本,在撰写本文时只有 4.X 是稳定的,而 5.0.0-rc3 是最新的。

关于c# - 迁移到 .NET Core 3.0 后 swagger 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084294/

相关文章:

c# - 如何使用 MPF 创建从 c# 继承的自定义项目?

c# - 为什么我的文件从 Angular 上传到 .NET core Web api 不起作用?

java - JAX-RS POST bean 属性的默认值

asp.net-core - Ajax 发布到 ASP .NET 2.2 Razor 页面时出现 404 错误

asp.net-core - signalR 核心打开连接两次

swagger - 如何在 OpenAPI (Swagger) 中为同一路径定义不同的主体参数?

java - Swagger 中的重复条目

C# 从网上下载文件

c# - 什么是 nAnt,它如何对我作为 C# 开发人员有用?

c# - 在 C# 中发送电子邮件