如何在 .net core 1.0 中获取接口的所有实例

How to get all instance of an interface in .net core 1.0

在 Mvc5 中,我使用 unity 作为服务容器,并使用这种方式解析特定类型的所有对象。

    public IUnityContainer UnityContainer;

    public MvcApplication()
    {
        UnityContainer = UnityConfig.GetConfiguredContainer();
    }


    protected void Application_Start()
    {
        foreach (var task in UnityContainer.ResolveAll<IRunAtInit>())
        {
            task.Execute();
        }
    }

在使用默认服务容器的 .net 核心中,如何解析特定类型的所有对象?

只需使用 plural 版本的扩展方法。

使用 services.GetServices<T>() 而不是 services.GetService<T>()

如果要将它们注入到服务中,只需在构造函数中注入 IEnumerable<IRunAtInit> 即可。