具有 2 个不同服务的相同服务的 Autofac DependencyResolver
Autofac DependencyResolver of same service with 2 different services
我有一个包含两个不同组件的服务
<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; }
我有一个包含两个不同组件的服务
<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; }