gpt4 book ai didi

c# - Azure 函数 - 函数应该写在静态类中吗

转载 作者:太空狗 更新时间:2023-10-29 21:32:21 27 4
gpt4 key购买 nike

我开始尝试 Azure 功能。我使用的是 Visual Studio 2017 预览版 15.3。当我右键单击创建的 Azure Functions 项目,然后选择“添加>新建项...>Azure Function”时,Visual Studio 生成的默认模板是一个带有 public 的 public static class 。静态异步任务方法(函数)。

该类是否需要是静态的(我将其更改为非静态,它似乎可以工作)?这是 Azure 函数的最佳实践吗?如果是这种情况,使用非静态类来保存 Azure Function 方法可能会出现什么问题?

最佳答案

一如既往,这取决于情况。在保持函数类静态的其他答案中,我想介绍另一种情况,其中非静态类可能会有所帮助。请查看:Functions dependency injection 。如果您想在函数中使用 DI,则没有简单的方法可以使用静态类来实现此目的,因为它不能具有带参数的实例构造函数。所以你不能写这样的东西:

public class HttpTrigger
{
private readonly IMyService _service;
private readonly HttpClient _client;

public HttpTrigger(IMyService service, IHttpClientFactory httpClientFactory)
{
_service = service;
_client = httpClientFactory.CreateClient();
}

[FunctionName("GetPosts")]
public async Task<IActionResult> Get(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "posts")] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
var res = await _client.GetAsync("https://microsoft.com");
await _service.AddResponse(res);

return new OkResult();
}
}

关于c# - Azure 函数 - 函数应该写在静态类中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45168659/

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