No suggestions ? On Wednesday, 5 December 2012 19:08:21 UTC+2, nst wrote: > > I have been playing around with BoundTo and thinking that may be a better > option.... > > Here is an example > > IWindsorContainer container = new WindsorContainer(); > > container.Register(Component.For<Container>().ImplementedBy<Container>().LifestyleTransient().OnDestroy(x > => x.Desroyed = true), > > Component.For<A>().ImplementedBy<A>().LifeStyle.Transient.OnDestroy(x => > x.Desroyed = true), > > Component.For<B>().ImplementedBy<B>().LifeStyle.Transient.OnDestroy(x => > x.Desroyed = true), > > Component.For<C>().ImplementedBy<C>().LifestyleTransient().OnDestroy(x => > x.Desroyed = true), > > Component.For<AB>().ImplementedBy<AB>().LifeStyle.BoundTo<Container>().OnDestroy(x > => x.Desroyed = true)); > > > ObjectResolver.Initialise(container); > > var c = ObjectResolver.Resolve<Container>(); > > Assert.AreSame(c.A.AB, c.B.AB); > > var s = ObjectResolver.Resolve<Container>(); > > Assert.AreSame(s.A.AB, s.B.AB); > Assert.AreNotSame(s.A.AB, c.A.AB); > > var a = ObjectResolver.Resolve<A>(); > Assert.AreNotSame(a.AB, s.A.AB); ---- This fails.... any way > around this ? > > > Where A and B are repositories and AB is the unitofwork and container is the > Form... based on the test it looks like that works. The only problem is if I > want to resolve a unit of work outside of a form's context. I suspect there > isnt a way for a lifestyle to revert to a transient lifestyle if the boundto > fails ? > > > Would appreciate any thoughts on this... is BoundTo a better approach ? > > > On Wednesday, 5 December 2012 13:18:32 UTC+2, nst wrote: >> >> I want to use the scoped life styles in winforms in conjunction to the >> Repository & Unit Of Work implementations with Nhibernate. >> i.e get windsor to new up the form and inject the defined repositories >> and have them all share the same unit of work. >> >> My thinking was that I can call the begin scope prior to new'ing the form >> and store the IDisposable and release when the form is closed. Then when >> each form is opened a new Begin Scope is called. >> >> Does this sound viable ? There is a problem though - if form 1 is opened >> and then form 2 is opened the latest begin scope would be owned by form 2. >> If the resolve method was called from form 1 (say button click) then the >> UoW would be associated with Form 2's scope ... this correct ? >> >> Are there any suggestions how I can achieve what I am trying to do ? >> >
-- You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/castle-project-users/-/b6Kd2HfhTQcJ. 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.
