【问题标题】:Resolve all implementation/services of a type using .Net Core DI [duplicate]使用 .Net Core DI 解决一种类型的所有实现/服务 [重复]
【发布时间】:2020-06-27 12:47:35
【问题描述】:

我正在从 Asp.Net MVC 迁移到 .Net Core。

在我的 MVC 项目中,我们使用 System.Web.Mvc.DependencyResolver 来解决我试图用 .Net Core IServiceProvider 替换的依赖项

但是,IDependencyResolver 提供了一种方法,我不确定 .Net Core 中是否有任何替代方法。

IEnumerable<object> GetServices(Type serviceType);

这是来自Sytem.Web.Mvc,我相信它可以获取任何类型的所有依赖项。

我在 .Net Core 的 IServiceProvider 中找不到任何此类方法。

你遇到过这样的Api吗?

感谢您的宝贵时间。

【问题讨论】:

  • 在包Microsoft.Extensions.DependencyInjection.Abstractions:IEnumerable&lt;object&gt; GetServices(this IServiceProvider provider, Type serviceType)中查看重复的扩展方法。
  • 链接的副本不正确,因为它没有处理如何让所有实现实现接口的问题,而是关于如何获得所有接口/实现的问题。
  • @CodeCaster 谢谢,我会测试这是否有效。
  • ServiceProviderServiceExtensions.GetServices(this IServiceProvider, Type) 方法与IDependencyResolver.GetServies 具有相同的签名和行为。

标签: c# .net asp.net-core dependency-injection


【解决方案1】:

尝试解析服务类型的 IEnumerable。

【讨论】:

  • 没听懂,GetService方法只接受一个类型,返回单一类型,能不能用代码显示?
  • CodeCaster 的评论和我在这里的意思一样。尝试该方法并传入接口类型。
  • 好的。将对其进行测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 1970-01-01
相关资源
最近更新 更多