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

时间:2018-07-12 11:00:39

标签: c# .net dependency-injection simple-injector di-containers

我无法提供更好的标题,因此在阅读完整个问题后,请随时进行更改。

我有以下课程:

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>());

1 个答案:

答案 0 :(得分:2)

赞:

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

详细了解here