Thanks Mauricio, I'll look into that. On Dec 1, 3:36 pm, Mauricio Scheffer <[email protected]> wrote: > With Windsor, child containers are hardly ever the "right" solution. > Normally you'll have a single container per application, initialized at app > startup. If you want to define the scope for your components, take a look at > lifestyles:http://stw.castleproject.org/Windsor.LifeStyles.ashx > > -- > Mauricio > > On Wed, Dec 1, 2010 at 1:02 PM, Matt Lund <[email protected]> wrote: > > Thanks for your reply. I thought that in a server web services > > application, parent/child would be the best approach to take because > > the registration of components would occur just once (on the parent > > container) and then a child container would be instantiated for the > > lifecycle of each web service call that comes in. This avoids the > > performance hit of component registration for each call that comes in. > > > That was my thinking but I'm new to IoC containers :) > > > On Nov 30, 2:36 pm, Mauricio Scheffer <[email protected]> > > wrote: > > > Looks like an issue with child containers... what's your scenario for > > > choosing child containers? > > > > -- > > > Mauricio > > > > On Nov 30, 3:34 pm, Matt Lund <[email protected]> wrote: > > > > > I've read several articles about release policies, and it's only > > > > reluctantly that I post this because I'm sure I must be doing > > > > something dumb. > > > > > I would expect the following code to exhibit a low/constant memory > > > > consumption. But instead, it builds very quickly to the point that > > > > it'll run out of memory. > > > > > I think I may be having a problem getting the child container to be > > > > released from the parent container but I'm not sure. Any ideas? > > > > > class Program > > > > { > > > > static void Main(string[] args) > > > > { > > > > IWindsorContainer parentContainer = new > > WindsorContainer(); > > > parentContainer.Register(Component.For<Service1>().ImplementedBy<Service1>( > > ).LifeStyle.Transient); > > > > > for (int i = 0; i < 100000; i++) > > > > { > > > > using (IWindsorContainer childContainer > > = new WindsorContainer()) > > > > { > > > childContainer.Kernel.ReleasePolicy = new > > > > LifecycledComponentsReleasePolicy(); > > > parentContainer.AddChildContainer(childContainer); > > > > > Service1 service1 = > > > > (Service1)childContainer.Resolve(typeof(Service1)); > > > > service1.Method1(); > > > childContainer.Release(service1); > > > > > if (i % 100 == 0) > > > > { > > > > GC.Collect(2); > > > Console.WriteLine("Iteration: {0}, Memory {1}", i, > > > > GC.GetTotalMemory(false)); > > > > } > > > parentContainer.RemoveChildContainer(childContainer); > > > > } > > > > } > > > > } > > > > } > > > > > public class Service1 > > > > { > > > > private byte[] big = new byte[1000000]; > > > > > public void Method1() > > > > { > > > > } > > > > } > > > -- > > 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]<castle-project-users%[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.
