Azure 函数中的构造函数注入和自定义遥测事件的集合需要此非静态类。
如果我们在 Visual Studio 中创建一个 Azure 函数应用程序,它会使用 static 关键字创建默认值,如下所示:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
telemetryClient.TrackEvent(new Exception("Function started"));
}
但是要使用构造函数依赖注入(对于 Temeltry 客户端,我正在使用它),我们需要删除 static 关键字。
public Function1(TelemetryClient telemetryClient)
{
_telemetryClient = telemetryClient;
}
以前,Azure Functions 仅支持静态类/方法。此限制使得无法通过构造函数进行 DI。然而后来实现了对非静态类/方法的支持(参见支持实例功能 https://github.com/Azure/azure-functions-host/issues/911).
因此,如果您需要通过构造函数使用 DI,只需将其更改为非静态即可。没有任何后果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)