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

    public IUnityContainer UnityContainer;

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


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


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

最佳答案

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

代替services.GetService<T>()使用services.GetServices<T>()

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

09-29 22:23