具有2种不同服务的相同服务的Autofac DependencyResolver

时间:2015-03-16 13:41:46

标签: dependency-injection autofac dependency-resolver

我有两个不同组件的服务

<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; }

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

谢谢

1 个答案:

答案 0 :(得分:0)

已解决

public Interface[] _myInterfaces { get; set; }

而不是

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