【发布时间】:2020-07-28 14:56:56
【问题描述】:
在 AzureFunction 中,我将一些服务注册为作用域,而将其他一些服务注册为 Singleton。 事实证明,Singleton 的依赖项是 Scoped 服务(一件坏事),在运行时我得到this kind of exception。
我希望能够编写一个单元测试来检查与运行时相同的内容,但我没有成功。任何人都可以帮助我吗?
我尝试了什么:
// Arrange
var functionStartup = new MyFunctionStartup();
var serviceCollection = new ServiceCollection();
var functionHostBuilder = A.Fake<IFunctionsHostBuilder>();
A.CallTo(() => functionHostBuilder.Services).Returns(serviceCollection);
// Act
// doing in fact under the hood:
// services.AddSingleton<ISingleton, Singleton>();
// services.AddScoped<IScopedDependencyOfSingleton, ScopedDependencyOfSingleton>();
functionStartup.Configure(functionHostBuilder);
// Assert
var provider = serviceCollection.BuildServiceProvider();
var singleton = provider.GetService<ISingleton>();
【问题讨论】:
标签: asp.net-core dependency-injection azure-functions dryioc