由于缺少OperationFilterContext.ControllerActionDescriptor,解决方案无法编译

问题描述 投票:2回答:1

我刚创建并下载了一个示例项目。由于引用了ControllerActionDescriptor对象的OperationFilterContext属性,它无法编译:

public class SecurityRequirementsOperationFilter : IOperationFilter
{
    public void Apply(Operation operation, OperationFilterContext context)
    {
        var actionAttrs = context.ControllerActionDescriptor.MethodInfo.GetCustomAttributes(true).ToList();
    }
}

我确实更新了所有NuGet包。 DLL地狱永远不会消失:-(

c# asp.net-core aspnetboilerplate swashbuckle
1个回答
6
投票

Swashbuckle.AspNetCore v2.5.0

ControllerActionDescriptor仅出现在Swashbuckle.AspNetCore v2.5.0中。

见:https://github.com/domaindrivendev/Swashbuckle.AspNetCore/commit/c9777021ff3b7bd7900fb259779df8d3cba4e217#diff-e86edb6a6357b96238665ca2b11f5ab8


Swashbuckle.AspNetCore v3.0.0+

现在,你只需要:

var controllerAttributes = context.MethodInfo.DeclaringType.GetCustomAttributes(true);
© www.soinside.com 2019 - 2024. All rights reserved.