具有 2 个不同服务的相同服务的 Autofac 依赖项解析器



>我有一个服务有两个不同的组件

<component type="ConcreteA, ConcreteA" service="Interface, Interface" />
<component type="ConcreteB, ConcreteB" service="Interface, Interface" />

我想解决这两个问题。我正在以这种方式尝试

var builder = new ContainerBuilder();
builder.RegisterModule(new ConfigurationSettingsReader());
builder.RegisterControllers(typeof(MvcApplication).Assembly);
this._container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(this._container));

现在在我的控制器中,我想解决我的依赖关系

public Interface _myInterface { get; set; }

我以这种方式使用它:

_myInterface.DoWork();

如果我在配置中只声明一个组件,一切正常。但是,如果我添加更多相同接口类型的组件,就会出错。我试图将财产声明替换为

public List<Interface> _myInterfaces { get; set; }

但该属性始终保持为空...我该怎么办?

谢谢

解决方法为

public Interface[] _myInterfaces { get; set; }

而不是

public List<Interface> _myInterfaces { get; set; }

相关内容

  • 没有找到相关文章

最新更新