IOW, The problem is that NHibernateUnitOfWorkFactory.CurrentSession is settable.
On Wed, Nov 25, 2009 at 12:59 PM, Ayende Rahien <[email protected]> wrote: > Hm, I don't think this is related to Rhino Security. > What is happening is that during the resolution of IUoWFactory, you are > trying to access UnitOfWork. > That is likely going to cause issues. > > > > On Wed, Nov 25, 2009 at 12:50 PM, ChrisR <[email protected]>wrote: > >> The factory facility is registered. Here is the complete container >> initialisation code: >> >> container.AddFacility<StartableFacility>(); >> container.AddFacility<FactorySupportFacility>(); >> container.AddFacility("logging.facility", new LoggingFacility >> (LoggerImplementation.Log4net, "log4net.config")); >> >> container.Register( >> Component.For<INHibernateInitializationAware>() >> .ImplementedBy<NHibernateMsSql2005ExpressInitialization>() >> .LifeStyle.Singleton); >> container.Register( >> Component.For(typeof (IRepository<>)) >> .ImplementedBy(typeof (NHRepository<>)) >> .LifeStyle.Transient); >> container.Register( >> Component.For<IUnitOfWorkFactory>() >> .ImplementedBy<NHibernateUnitOfWorkFactory>() >> .LifeStyle.Singleton); >> >> container.Register( >> Component.For<IAuthorizationService>() >> .ImplementedBy<AuthorizationService>() >> .LifeStyle.Transient); >> container.Register( >> Component.For<IAuthorizationRepository>() >> .ImplementedBy<AuthorizationRepository>() >> .LifeStyle.Transient); >> container.Register( >> Component.For<IPermissionsBuilderService>() >> .ImplementedBy<PermissionsBuilderService>() >> .LifeStyle.Transient); >> container.Register( >> Component.For<IPermissionsService>() >> .ImplementedBy<PermissionsService>() >> .LifeStyle.Transient); >> >> container.Register( >> Component.For<ISession>() >> .UsingFactoryMethod(() => UnitOfWork.CurrentSession) >> .LifeStyle.Transient); >> >> >> On 25 Nov, 08:40, Ayende Rahien <[email protected]> wrote: >> > I think that you need to register the factory facility >> > >> > On Tue, Nov 24, 2009 at 8:20 PM, ChrisR <[email protected]> >> wrote: >> > > When using the latest version of rhino.commons, how can the ISession >> > > interface be provided for use with rhino.security? >> > >> > > If I attempt to register ISession using a factory method as below: >> > >> > > container.Register( >> > > Component.For<ISession>() >> > > .UsingFactoryMethod(() => UnitOfWork.CurrentSession) >> > > .LifeStyle.Transient); >> > >> > > then I get a CircularDependencyException: >> > >> > > Castle.MicroKernel.Exceptions.CircularDependencyException: A cycle was >> > > detected when trying to resolve a dependency. The dependency graph >> > > that resulted in a cycle is: >> > > - Service dependency 'CurrentSession' type 'NHibernate.ISession' for >> > > NHibernate.ISession CurrentSession in type >> > > Rhino.Commons.NHibernateUnitOfWorkFactory >> > > + Service dependency 'CurrentSession' type 'NHibernate.ISession' for >> > > NHibernate.ISession CurrentSession in >> > > Rhino.Commons.NHibernateUnitOfWorkFactory >> > >> > > -- >> > >> > > You received this message because you are subscribed to the Google >> Groups >> > > "Rhino Tools Dev" group. >> > > To post to this group, send email to [email protected] >> . >> > > To unsubscribe from this group, send email to >> > > [email protected]<rhino-tools-dev%[email protected]> >> <rhino-tools-dev%[email protected]<rhino-tools-dev%[email protected]> >> > >> > > . >> > > For more options, visit this group at >> > >http://groups.google.com/group/rhino-tools-dev?hl=en. >> >> -- >> >> You received this message because you are subscribed to the Google Groups >> "Rhino Tools Dev" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<rhino-tools-dev%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/rhino-tools-dev?hl=en. >> >> >> > -- You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" 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/rhino-tools-dev?hl=en.
