gpt4 book ai didi

c# - 在 .NET 5 中将 IActionResult 与 Azure Functions 结合使用?

转载 作者:行者123 更新时间:2023-12-04 11:21:40 24 4
gpt4 key购买 nike

将我的 Azure Functions 项目迁移到 .NET 5 后,它开始将我的响应包装在一个奇怪的包装类中。

例如,考虑以下端点:

public record Response(string SomeValue);

[Function("Get")]
public async Task<IActionResult> Get(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "get-something")]
HttpRequestData request)
{
return new OkObjectResult(new Response("hello world"));
}

之前,它会返回:

{
"someValue": "hello world"
}

但现在,它返回:

{
"Value": {
"SomeValue": "hello world"
},
"Formatters": [],
"ContentTypes": [],
"DeclaredType": null,
"StatusCode": 200
}

我知道这一定是因为它只是尝试序列化对象结果,但我找不到任何关于它如何在 .NET 5 中工作的文档。

我的主要功能目前如下所示:

public static async Task Main()
{
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(x =>
x.UseDefaultWorkerMiddleware())
.ConfigureAppConfiguration((_, builder) => builder
.AddJsonFile("local.settings.json", true)
.Build())
.ConfigureServices(ConfigureServices)
.Build();

await host.RunAsync();
}

我的项目位于这里,如果有人感兴趣的话:https://github.com/sponsorkit/sponsorkit.io

目前,我的 .NET 5 工作在一个名为 feature/signup-flow 的分支上。

最佳答案

Using IActionResult with Azure Functions in .NET 5?

can't return IActionResult with Azure Functions in .NET 5 。或者更一般地说,您无法使用隔离进程模型通过 Azure Functions 返回 IActionResult。引用文档:

For HTTP triggers, you must use HttpRequestData and HttpResponseData to access the request and response data. This is because you don't have access to the original HTTP request and response objects when running out-of-process.

您需要返回 HttpResponseData,而不是 IActionResult 。示例代码为 here .

关于c# - 在 .NET 5 中将 IActionResult 与 Azure Functions 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67045378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com