Autofac如何用多个名字注册一个服务?

Autofac how to register a service with multiple names?

有没有办法用多个名称注册一个服务? 我知道我可以使用 .Named() 使用名称注册服务,但此方法不接受 Array 仅单个字符串项。 那么如何使用多个名称注册我的服务?

您是否尝试过在同一个注册行中多次使用 Named()?

您可以在注册类型时多次调用 Named 方法:

builder.RegisterType<XService>()
       .Named<IService>("a")
       .Named<IService>("b")
       .Named<IComponent>("a"); 

这样,当您解析名为 a 或名为 bIServiceIComponent 名为 a