【发布时间】:2019-07-24 14:24:21
【问题描述】:
我正在关注这篇文章,并实现了Startup 类,以便我可以在构造函数中注入我的服务,但服务实例始终为空,并且当我运行应用程序时我得到Object reference not set to an instance of an object。
下面是我的Startup 课程。
[assembly: FunctionsStartup(typeof(Backup.Functions.Startup))]
namespace Backup.Functions {
public class Startup: FunctionsStartup {
public override void Configure(IFunctionsHostBuilder builder) {
builder.Services.AddSingleton < IBlobService,
BlobService > ();
}
}
}
我的功能代码如下。
public class DeleteDailyBlobs {
private static IBlobService _blobService;
public DeleteDailyBlobs(IBlobService blobService) {
_blobService = blobService;
}
[FunctionName("DeleteDailyBlobs")]
public static void Run([TimerTrigger("0/3 * * * * *")] TimerInfo myTimer, ILogger log) {
if (_blobService.PerformTasks().GetAwaiter().GetResult()) {
log.LogInformation(SuccessMessages.FunctionExecutedSuccessfully);
}
else {
log.LogError(ErrorMessages.SomethingBadHappened);
}
}
}
这里_blobService 始终为空。
【问题讨论】:
-
为什么要在函数中注入 blobservice 包装器?您正在增加代码的复杂性并降低可维护性。你认为你在做单元测试吗?
标签: c# .net azure dependency-injection azure-functions