autofac多服务(相同的接口 - 多个插件提供它)如何实现?

Tho*_*fer 2 c# service autofac

我有一个服务接口,比方说IAddonServiceX是由许多但不是系统的所有插件实现的.我想拥有一个IEnumerable,以便我可以为每个注册此服务的插件迭代并执行方法?何可以用autofac完成?

nem*_*esv 6

Autofac对它有隐含的支持,所以你只需要注册你的实现

builder.RegisterType<Impl1>.As<IAddonServiceX>();    
builder.RegisterType<Impl2>.As<IAddonServiceX>();
Run Code Online (Sandbox Code Playgroud)

当你正在解决的IEnumberable<IAddonServiceX>有 container.Resolve<IEnumberable<IAddonServiceX>>或使用IEnumberable<IAddonServiceX>在构造函数,然后Autofac将为您提供所有的实现.