如何将通用抽象映射到 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。
我想不出更好的标题,所以请在阅读整个问题后随时更改它。
我有以下 类:
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。