注入包含所有已注册的接口实现的Enumerable

Ste*_*kes 6 c# dependency-injection unity-container

给出以下界面:

public interface IMyProcessor
{
    void Process();
}
Run Code Online (Sandbox Code Playgroud)

我希望能够注册多个实现并让我的DI容器将其中的可枚举注入到这样的类中:

public class MyProcessorLibrary
{
    private readonly IMyProcessor[] _processors;

    public MyProcessingThing(IMyProcessor[] processors)
    {
        this._processors = processors;
    }

    public void ProcessAll()
    {
        foreach (var processor in this._processors)
        {
            processor.Process();
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

这可能吗?我当前MyProcessorLibraryIMyProcessor实现静态查找所有实现,但如果可以的话,我宁愿通过容器来实现.我正在使用Unity,但我很好奇其他容器是否支持它.

编辑:

谢谢你到目前为止的答案; 要清楚我想注入MyProcessorLibrary另一个类,并将其构建为依赖对象树的连接的一部分,例如

public class MyProcessorRepository
{
    public MyProcessorRepository(MyProcessorLibrary processorLibrary)
    {
    }
}

public class MyProcessorService
{
    public MyProcessorService(MyProcessorRepository processorRepository)
    {
    }
}

var container = new UnityContainer();
// Register a bunch of IMyProcessors...

var service = container.Resolve<MyProcessorService>();
Run Code Online (Sandbox Code Playgroud)

Tre*_*ley 3

我不能代表 Unity 发言,因为我不使用它,但使用我使用的Ninject(请参阅 多重注入)绝对是可能的。