如何将通用抽象映射到 Simple Injector 中的通用实现?

How can I map a generic abstraction to a generic implementation in Simple Injector?

我想不出更好的标题,所以请在阅读整个问题后随时更改它。

我有以下 类:

public class Foo<T> : IFoo<T> {}
public interface IFoo<T> { }

我希望能够以这种方式注入 IFoo<T> 个参数:

public class MyService 
{
    public MyService(IFoo<SomeClass> whatever) {}
}

如何配置容器而不必每次都注册?即我想避免必须这样做:

container.Register<IFoo<SomeClass>>(new Foo<SomeClass>());
container.Register<IFoo<SomeOtherClass>>(new Foo<SomeOtherClass>());
...

相反,我想做这样的事情(伪代码):

container.Register<IFoo<T>>(new Foo<T>());

像这样:

container.Register(typeof(IFoo<>), typeof(Foo<>));

了解更多信息 here