返回

c#-.NET Core API 中间件 - 访问“Endpoint.RequestDelegate.Target”属性

发布时间:2022-08-07 19:53:50 287
# flask

我有在API端点之前调用的自定义中间件。端点示例:

    [HttpPost]
    public async Task DoSomething (string id) { // does stuff }

DoSomething()应仅接受POST请求。

如果使用HTTP动词不正确喜欢GETDELETE,我想记录这件事。为了正确地这样做,我需要知道DoSomething()端点定义为[HttpPost].

这是我的中间件InvokeAsync方法

public async Task InvokeAsync (HttpContext context)
{
    Endpoint endpoint = context.GetEndpoint();

    if (endpoint != null)
    {
        // if we get '405 not supported', we used INCORRECT HTTP VERB
        if (endpoint.DisplayName.StartsWith("405", StringComparison.OrdinalIgnoreCase))
        {
            dynamic target = endpoint.RequestDelegate.Target;
            string verb = target.allow; // error here
        }
    }
}

在调试器中,我可以看到endpoint.RequestDelegate.Target有一个名为allow“POST”的属性。但是我无法访问该字段,我如何访问它?上面的代码返回错误:

'object' does not contain a definition for 'allow'
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像