【问题标题】:Swagger - Inject string into IOperationFilterSwagger - 将字符串注入 IOperationFilter
【发布时间】:2020-09-03 23:33:06
【问题描述】:

我有一个 OperationFilter,它需要一个字符串才能工作

    public class AuthorizeCheckOperationFilter : IOperationFilter
    {
        public AuthorizeCheckOperationFilter(string scope)
        {
            Scope = scope;
        }

        public string Scope { get; }

        public void Apply(OpenApiOperation operation, OperationFilterContext context)
        {
            // Here is the Scope needed
        }
    }

和 Startup 中的 Swaggergen:

services.AddSwaggerGen(options =>
{
    options.SwaggerDoc(apiVersion, new OpenApiInfo
    {
        Title = apiName,
        Version = apiVersion,
    });

    ...

    options.OperationFilter<AuthorizeCheckOperationFilter>();
});

问题是,Swagger 无法解析 AuthorizeCheckOperationFilter,因为没有注册字符串

我也尝试使用给定的字符串注册AuthorizeCheckOperationFilter,但这也行不通。

有没有办法做到这一点?

【问题讨论】:

    标签: c# asp.net-core dependency-injection swagger


    【解决方案1】:

    添加过滤器时,您还需要像这样传递参数:

    options.OperationFilter<AuthorizeCheckOperationFilter>("myScope");
    

    在我的电脑上测试了一个验证。

    【讨论】:

    • 是的,这行得通。我还可以提供范围列表或任何其他对象。我不确定这些参数的用途,但这回答了我的问题:D 非常感谢!!
    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多