using System; using System.Collections.Generic; using System.Text; using Castle.Windsor; using Castle.Windsor.Configuration.Interpreters; namespace TestIOC { public class startup { public static void Main() { ///Test1(); //Test2(); } private static void Test1() { using (WindsorContainer ioc = new WindsorContainer(new XmlInterpreter("config1.xml"))) { for (Int32 I = 0; I < 10000; ++I) { ITest var = ioc.Resolve(); if (I % 100 == 0) { GC.Collect(2); Console.WriteLine("Iteration: {0}, Memory {1} Dispose {2}", I, GC.GetTotalMemory(false), DisposableTest.NumOfDispose); } //ioc.Release(var); } } Console.WriteLine("Number of Dispose Called {0}", DisposableTest.NumOfDispose); } private static void Test2() { using (WindsorContainer ioc = new WindsorContainer(new XmlInterpreter("config1.xml"))) { for (Int32 I = 0; I < 10000; ++I) { DisposableComponent var = ioc.Resolve(); if (I % 100 == 0) { GC.Collect(2); Console.WriteLine("Iteration: {0}, Memory {1} Dispose {2}", I, GC.GetTotalMemory(false), DisposableTest.NumOfDispose); } //ioc.Release(var); } } Console.WriteLine("Number of Dispose Called {0}", DisposableTest.NumOfDispose); } } }