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.

Reply via email to