Found a solution:
container.Register(Classes.FromAssemblyContaining(typeof(IRepository))
.BasedOn<IRepository>()
.If(Component.IsInSameNamespaceAs<BaseEntityRepository<BaseEntity>>())
.If(t => t.Name.EndsWith("Repository") &&
(t.Name.StartsWith("Foo") || t.Name.StartsWith("Bar")))
.Configure(c =>
c.DependsOn(ServiceOverride.ForKey("Session").Eq("db.session.second")).DependsOn(ServiceOverride.ForKey("SessionFactory").Eq("db.sessionfactory.second"))).LifestylePerThread());
> Since Castle.Windsor was updated to 3.0.0.4001 ServiceOverrides method
> became obsolete. So I need help to rewrite my old code to new style
> with using DependsOn method.
>
> container.Register(AllTypes.FromAssemblyContaining(typeof(IRepository))
> .BasedOn<IRepository>()
> .If(Component.IsInSameNamespaceAs<BaseEntityRepository<BaseEntity>>())
> .If(t =>
> t.Name.EndsWith("Repository") &&
> (t.Name.StartsWith("Foo") || t.Name.StartsWith("Bar")))
> .Configure(c =>
>
> c.ServiceOverrides(ServiceOverride.ForKey("Session").Eq("db.session.second" ))
> .ServiceOverrides(ServiceOverride.ForKey("SessionFactory").Eq("db.sessionfa ctory.second"))