使用 GraphQL.net 时如何从 ObjectGraphType 中的字段访问 Request 对象?

How can I access the Request object from a Field within an ObjectGraphType when using GraphQL.net?

我正在使用 GraphQL.net 和 C#。我在 ObjectGraphType 中有一个看起来像这样的字段;

        Field<FooGraphType>(
            "baz",
            resolve: context =>
            {
                //I want to inspect the Request object here
            });

我拥有的唯一端点如下所示;

    [HttpPost]
    public async Task<IActionResult> Post([FromBody] GraphQLQuery query)
    {
        // I can access the Request object here
        if (query == null) { throw new ArgumentNullException(nameof(query)); }
        var inputs = query.Variables.ToInputs();
        var executionOptions = new ExecutionOptions
        {
            Schema = _schema,
            Query = query.Query,
            Inputs = inputs
        };

        var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false);

        if (result.Errors?.Count > 0)
        {       
            return BadRequest(result);
        }

        return Ok(result);
    }

如何让我的 ObjectGraphType 字段的解析函数获得对在控制器操作中找到的 HttpRequest 对象的访问权限?尽管我对获取整个 HttpRequest 对象很感兴趣,但能够将特定信息从 Request 传递到 resolve 函数就足够了。

您可以注入 IHttpContextAccessor 或在 userContext 中存储信息 属性。

如果您设置了 ExceptionOptions 的 UserContext,您可以在字段解析函数的上下文中访问它。