>我有一个服务有两个不同的组件
<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; }