[英]How can I use Microsoft.Extensions.DependencyInjection in an .NET Core console app?
[英]Can I provide the .NET Core DependencyInjection with a “resolver” to return a Moq of any service which isn't registered?
给定一个具有依赖性的类:
class SomeService : ISomeService { ctor(ISomeDependency someDependency ... }
使用Moq,我可以像这样模拟依赖项:
var services = new ServiceCollection()
.AddTransient(_ => Mock.Of<ISomeDependency>())
.AddTransient<ISomeService,SomeService>()
.BuildServiceProvider();
services.GetRequiredService<ISomeService>();
无论如何,如果未注册实现,我是否可以注册ServiceProvider将使用的“提供商”? 如果未注册依赖项T
我希望ServiceProvider返回Mock.Of<T>
。
我想要这样做是因为我有些类具有很多依赖关系,并且希望避免某些类型的输入。
无论如何,如果未注册实现,我是否可以注册ServiceProvider将使用的“提供商”?
使用Microsoft.Extensions.DependencyInjection(MS.DI),无法实现此目的。 您正在寻找的是未注册的类型解析 。 大多数成熟的DI容器实际上都包含钩子,当请求未注册的类型时,这些钩子可以拦截来自库的调用。 但是,MS.DI没有这种功能。 必须明确进行所有注册,并且无法解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.