c# - .NET Web API 2 依赖项注入(inject) - 依赖项列表

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

我有一个使用 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/

相关文章:

javascript - AudioContext.currentTime 在 Chromebook 上永远停留在 0.010666666

odata - 哪个 WebApi OData 命名空间

c# - 当 localhost :port number is in browser address in iis express 时,web api 显示 403.14 错误

c# - 如何轻松地为一段 C# 代码计时?

c# - 保存和显示数据库中的图像

module - "High-level modules"和 "low-level modules"是什么(在依赖倒置原则的背景下)?

c# - ASP.NET Web API 中处理程序和筛选器的依赖注入(inject)

c# - Unity 和 Container.Resolve

c# - 使用 Linq 解析分段的 XML 字符串

C# 可视化子类 datagridview 控件 VS2005