Would you suggest instead to use empty marking interfaces?
For example create interfaces IXSessionFactory & IYSessionFactory, both
inherit from ISessionFactory.. and use the new interfaces to pass in the
correct instance?

On Wed, Apr 20, 2011 at 8:57 AM, Ryan <[email protected]> wrote:

> So it appears then that dependency injection cannot be used, other
> than injecting an IWindsorContainer?  Then pulling the named component
> from the container?
> I was hoping to implement a solution using multiple ISessionFactory
> instances as well.
>
>
> On Mar 25, 5:59 pm, Krzysztof Koźmic <[email protected]>
> wrote:
> > via service overrides
> .DependsOn(Property.ForKey<ISessionFactory>().Is("name
> > of the component")).
> >
> > you only need to do it for where you want to override the default service
> > that would have been injected, where the default is the first one
> > registered. So you need the override only where you want to use the 2nd
> one.
> >
> > HTH,
> > Krzysztof
> >
>  > On 26 March 2011 08:56, Dave Rathnow <[email protected]> wrote:
> >
> >
> >
> > > I'm new to Castle and have been trying to convert an application over
> to
> > > Castle from Spring.NET/NHibernate using FluentNHibernate.  I'm working
> using
> > > the sample ToBeSeen project as a reference and have done okay up until
> I hit
> > > this problem:
> >
> > > My application uses two databases.  With Spring.NET/NHibernate I
> created
> > > two instances of ISessionFactory and gave them unique names.  When
> injecting
> > > an ISessionFactory into an object, I specified the name.  How do I do
> this
> > > with Castle?  Assuming I have this:
> >
> > > Kernel.Register(
> > >                 Component.For<ISessionFactory>()
> > >                     .UsingFactoryMethod(config1.BuildSessionFactory)
> > >                     .Named("sessionManager1"));
> >
> > > Kernel.Register(
> > >                 Component.For<ISessionFactory>()
> > >                     .UsingFactoryMethod(config2.BuildSessionFactory)
> > >                     .Named("sessionManager2"));
> >
> > > and a UserRepository mapping:
> >
> > >             container.Register(Component.For<IUserRepository>()
> > >                                    .ImplementedBy<UserRepository>()
> > >                                    .LifeStyle.Transient);
> >
> > >             container.Register(Component.For<ICompanyRepository>()
> > >                                    .ImplementedBy<CompanyRepository>()
> > >                                    .LifeStyle.Transient);
> >
> > > How do I inject "sessionManager1" into UserRepository and
> "sessionManager2"
> > > into CompanyRepository?
> >
> > > Thanks,
> > > Dave.
> >
> > >  --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Castle Project Users" group.
> > > To post to this group, send email to
> [email protected]
> > > .
> > > To unsubscribe from this group, send email to
> > > [email protected].
> > > For more options, visit this group at
> > >http://groups.google.com/group/castle-project-users?hl=en.- Hide quoted
> text -
> >
> > - Show quoted text -
>
> --
> You received this message because you are subscribed to the Google Groups
> "Castle Project Users" group.
> To post to this group, send email to [email protected]
> .
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/castle-project-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to