[英]Castle Windsor: Register by Convention with Named part
我正在使用温莎城堡作为我的DI容器。 我注册了服务并指定了一个名称:
container.Register(Component.For<MyService>().Named("MyService"));
问题是我的系统中有很多服务,我已经厌倦了注册每个服务。 我如何才能按照惯例做到这一点而又不丢失Named
部分? (我不介意使用与班级相同的名称来调用我的服务)
您可以使用以下命令注册源自某个基本/接口的所有服务,然后配置其名称:
WindsorContainer container = new WindsorContainer();
container.Register(Classes.FromThisAssembly()
.BasedOn<IService>()
.Configure(c => c.Named(c.Implementation.Name)));
对于以下示例:
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 { }
输出为:
还有其他方法可以选择要注册的类。 在文档中查看更多
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.