You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 10配置Swagger授权按钮时遇OpenApiReference找不到错误

.NET 10中Swagger添加授权按钮时遇到OpenApiReference找不到的问题

错误信息

找不到类型或命名空间名称‘OpenApiReference’(是否缺少using指令或程序集引用?)

错误截图:
错误截图

相关代码

C#配置代码

using Microsoft.OpenApi;

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo
    {
        Title = "LMS API",
        Version = "v1"
    });
    c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        Name = "Authorization",
        Type = SecuritySchemeType.ApiKey,
        Scheme = "Bearer",
        BearerFormat = "JWT",
        In = ParameterLocation.Header,
        Description = "Here Enter JWT Token with bearer format like bearer[space] token"
    });
    c.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
        new OpenApiSecurityScheme
        {
            Reference = new OpenApiReference
            {
                Type = ReferenceType.SecurityScheme,
                Id="Bearer"
            }

        },new string[]{ }
        }
    });
}
);

项目包引用

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.2" />
  <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="10.0.1" />
  <PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.0" />
</ItemGroup>

解决办法

问题根源是命名空间引用错误:OpenApiReference、ReferenceType等类型属于Microsoft.OpenApi.Models命名空间,而非当前代码中的Microsoft.OpenApi。

1. 修正命名空间

将代码顶部的引用替换为:

using Microsoft.OpenApi.Models;

2. 修正后的完整代码

using Microsoft.OpenApi.Models;

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo
    {
        Title = "LMS API",
        Version = "v1"
    });
    c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        Name = "Authorization",
        Type = SecuritySchemeType.ApiKey,
        Scheme = "Bearer",
        BearerFormat = "JWT",
        In = ParameterLocation.Header,
        Description = "请输入JWT Token,格式为 bearer[空格]token"
    });
    c.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference
                {
                    Type = ReferenceType.SecurityScheme,
                    Id = "Bearer"
                }
            },
            Array.Empty<string>()
        }
    });
});

3. 验证包引用

当前项目的包引用版本兼容,无需调整,确保已正确安装这些包即可。

内容的提问来源于stack exchange,提问作者anony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 17:12:34