如何向类注入基本接口列表

时间:2018-08-09 09:21:44

标签: c# dependency-injection simple-injector

我有一个程序,其中有一些带有自定义接口的服务,但是所有服务都继承自IService。这些服务以其自定义接口的形式注册为Simple Injector容器中的单例,但在一个主类中,我希望它们全部通过IEnumebable<IService>注入到构造函数中。由于IEnumebable<IService>未注册,因此无法使用。我的问题是如何配置容器以允许在构造函数中检索它们-我可以手动解析类型,但我会避免这种反模式。

// sample service (one of many)    
public interface IHttpServerService : IService
...
_container.RegisterSingleton<IHttpServerService, HttpServerService>();
...
public Controller(IEnumerable<IService> services)
...

1 个答案:

答案 0 :(得分:1)

只需添加:

container.RegisterSingleton<IHttpServerService, HttpServerService>();

container.Collection.Register<IService>(
    typeof(IHttpServerService),
    // more implementations here
);