我指的是本教程。
一开始,IController 类型注册为:
public class ControllersInstaller:IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.BasedOn<IController>()
.LifestyleTransient());
}
}
但后来 EventRepository 注册如下:
public class RepositoriesInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.Where(Component.IsInSameNamespaceAs<EventRepository>())
.WithService.DefaultInterfaces()
.LifestyleTransient()));
}
}
两者有什么区别?我尝试使用用于 IController 注册的方法来注册 IEventRepository 但它不起作用?为什么?
现在在 IEventRepository 的情况下,它的实现 EventRepository 用于注册。如果我实现另一个类,比如 AnotherEventRepository,那么我将不得不为此添加另一个注册。难道我们不能使用一个注册来注册所有类型的 IEventRepository。