在Mvc5中,我使用unity作为服务容器,并使用这种方式解析特定类型的所有对象。
public IUnityContainer UnityContainer;
public MvcApplication()
{
UnityContainer = UnityConfig.GetConfiguredContainer();
}
protected void Application_Start()
{
foreach (var task in UnityContainer.ResolveAll<IRunAtInit>())
{
task.Execute();
}
}
在使用默认服务容器的.net核心中,如何解析特定类型的所有对象?
答案 0 :(得分:6)
只需使用扩展方法的plural版本即可。
而不是services.GetService<T>()
使用services.GetServices<T>()
。
如果要将它们注入服务,只需在构造函数中注入IEnumerable<IRunAtInit>
即可。