无法从'Microsoft.OpenApi.Models.OpenApiInfo'转换为'Swashbuckle.AspNetCore.Swagger.Info'



我在尝试运行虚张声势时收到此错误。有什么想法吗?

我的配置服务类中有这个

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "testing", 
                Version = "v1" });
            });

这在我的配置类中

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });

我今天遇到了同样的问题。查看Microsoft文档后,SwaggerDoc似乎正在寻找字符串和Info参数。在文件顶部,请确保包含using Swashbuckle.AspNetCore.Swagger;并将OpenApiInfo替换为 Info

services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info { Title = "testing", 
            Version = "v1" });
        });

Swashbuckle.AspNetCore 5.0.0版本(尚未发布,2019年11月(之前,SwaggerDoc 扩展方法需要一个Swashbuckle.AspNetCore.Swagger.Info参数。所以,你必须写:

// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});

特别是,如果你来自:开始使用Swashbuckle和 ASP.NET Core

从版本 5.0.0 开始,SwaggerDoc 扩展方法现在需要 Microsoft.OpenApi.Models.OpenApiInfo 参数。

下面是

Swagger5.5.0 和 C#>

的示例
public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
                {
                    Title = "API Title is",
                    Version = "v1"
                });
            });
        }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseRouting();
        app.UseAuthorization();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
        //app.UseMvc();
        app.UseSwagger();
        app.UseSwaggerUI(c => {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 api test");
        });
    }

您需要将软件包Swashbuckle.AspNetCore升级到最新版本v 5.0.0-rc5解决了问题。

在该包中,它已经包括Microsoft.OpenApi包程序集,您无需额外添加。您可以OpenApiInfoOpenApiContract和更多的属性直接继承在可升级包中。

最新更新