2016-01-11 154 views
2

我有一个使用Unity作为DependencyResolver的MS WebApi 2项目。.NET Web API 2依赖注入 - 依赖关系列表

我有一个问题,创建一个工厂类,具有所有注册的提供程序的依赖于特定的接口,因为更多的提供者将在未来出现,工厂不应该仅仅因为支持一个新的提供者而改变。

如果我的工厂如下实现,Unity DependencyResolver无法实例化它。

namespace Wintouch.Web.Api.Implementations 
{ 
    public class MyServiceProviderFactory : IServiceProviderFactory 
    { 
     private IEnumerable<IServiceProvider> _ServiceProviders; 

     public MyServiceProviderFactory(IEnumerable<IServiceProvider> serviceProviders) 
     { 
      this._ServiceProviders = serviceProviders; 
     } 

     public IServiceProvider GetServiceProvider(string providerKey) 
     { 
      return this._ServiceProviders.First(e => e.key = providerKey); 
     } 
    } 
} 

有没有办法解决依赖关系列表,而没有IDependencyResolver的依赖关系?

谢谢

回答

2

尝试通过params数组注入服务列表。

public MyServiceProviderFactory(params IServiceProvider[] serviceProviders) 
+0

谢谢。有用。 –