eit*_*nby 3 c# dependency-injection castle-windsor
我正在使用Castle Windsor作为我的DI容器.我在服务中注册了一个名称:
container.Register(Component.For<MyService>().Named("MyService"));
Run Code Online (Sandbox Code Playgroud)
问题是我的系统中有很多服务,而且我已经厌倦了注册其中的每一个.我怎么能按照惯例做到这一点而不失去Named部分?(我不介意用与该类相同的名称调用我的服务)
您可以使用以下命令注册从某个基本/接口派生的所有服务,然后配置其名称:
WindsorContainer container = new WindsorContainer();
container.Register(Classes.FromThisAssembly()
.BasedOn<IService>()
.Configure(c => c.Named(c.Implementation.Name)));
Run Code Online (Sandbox Code Playgroud)
对于以下示例:
public interface IService { }
public class Service1 : IService { }
public class Service2 : IService { }
public class Service3 : IService { }
public class Service4 : IService { }
public class Service5 : IService { }
public class Service6 : IService { }
Run Code Online (Sandbox Code Playgroud)
产出是:
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |