0

我正在使用带有 C# 的 GraphQL.net。我在 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 函数就足够了。

4

1 回答 1

1

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

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

于 2020-03-06T08:57:05.307 回答