我有一个使用 Unity 作为 DependencyResolver 的 MS WebApi 2 项目。
我在创建一个工厂类时遇到问题,该工厂类依赖于特定接口(interface)的所有注册提供程序,因为将来会出现更多提供程序,并且工厂不应仅仅因为支持新提供程序而更改。
如果我的工厂按如下方式实现,则 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 的情况下解析依赖项列表?
谢谢
最佳答案
尝试通过参数数组注入(inject)服务列表。
public MyServiceProviderFactory(params IServiceProvider[] serviceProviders)
关于c# - .NET Web API 2 依赖项注入(inject) - 依赖项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721895/