繁体   English   中英

我可以为.NET Core DependencyInjection提供“解析器”以返回未注册任何服务的最小起订量吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM