在我的Startup课程中,我使用该ConfigureServices(IServiceCollection services)方法设置我的服务容器,使用内置的DI容器Microsoft.Extensions.DependencyInjection.
我想在单元测试中验证依赖图,以检查是否可以构造所有服务,以便我可以修复在单元测试期间丢失的任何服务,而不是让应用程序在运行时崩溃.在之前的项目中,我使用了Simple Injector,它有一个.Verify()容器的方法.但我无法找到任何与ASP.NET Core类似的东西.
是否有任何内置(或至少推荐)的方法来验证是否可以构建整个依赖图?
(我能想到的最愚蠢的方式就是这样,但由于框架本身注入了开放的泛型,它仍然会失败):
startup.ConfigureServices(serviceCollection);
var provider = serviceCollection.BuildServiceProvider();
foreach (var serviceDescriptor in serviceCollection)
{
provider.GetService(serviceDescriptor.ServiceType);
}
Run Code Online (Sandbox Code Playgroud)