.NET Web API 2依赖注入 - 依赖项列表

时间:2016-01-11 12:44:02

标签: c# asp.net-web-api inversion-of-control unity-container

我有一个使用Unity作为DependencyResolver的MS WebApi 2项目。

我在创建一个工厂类时遇到问题,该工厂类具有特定接口的所有已注册提供程序的依赖关系,因为将来会出现更多提供程序,并且工厂不应仅因为支持新提供程序而进行更改。 / p>

如果我的工厂实现如下,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的情况下解析依赖项列表?

由于

1 个答案:

答案 0 :(得分:2)

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

public MyServiceProviderFactory(params IServiceProvider[] serviceProviders)