bjd*_*321 7 c# azure azure-functions
我开始尝试Azure功能。我正在使用Visual Studio 2017预览版15.3。右键单击我创建的Azure Functions项目,然后选择“添加”>“新建项目...”>“ Azure函数”时,Visual Studio生成的默认模板public static class带有public static async Task方法(该函数)。
该类是否需要为静态的(我将其更改为非静态的,并且似乎可以工作)?这是Azure功能的最佳实践吗?如果是这种情况,使用非静态类来保存Azure Function方法可能会出现什么问题?
kry*_*pru 19
一如既往,这取决于。在保持函数类静态的其他答案中,我想提出另一种非静态类可以提供帮助的情况。请看:函数依赖注入。如果你想在你的函数中使用 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();
}
}
Run Code Online (Sandbox Code Playgroud)
Amo*_*mor -6
该类是否需要是静态的(我将其更改为非静态,它似乎可以工作)?这是 Azure 函数的最佳实践吗?
静态类只能包含静态成员,并且不能实例化。将类更改为非静态将允许您添加非静态成员并创建此类的实例。
请检查是否需要向此类添加非静态成员或创建此类的实例。由于单一职责原则规定每个类都应该对软件提供的功能的单个部分负责,因此我建议您创建一个新类并将非静态成员放在那里。
如果是这种情况,使用非静态类来保存 Azure Function 方法可能会出现什么问题?
我想您想要使用非静态类的原因是您想在其中创建一些非静态成员。这样做会使您的类变得复杂且难以维护。
我最终的答案是可以将类改为非静态的。为了保持类简单,我建议你保持类静态。
| 归档时间: |
|
| 查看次数: |
4906 次 |
| 最近记录: |