static void BuildUp() { Console.Write("Straight:\t"); watch.Start(); for(int i = 0; i < n; ++i) { var c = new TestClass5(); c.t = new TestClass1(); } watch.Stop(); Console.WriteLine(watch.Elapsed); watch.Reset(); Console.Write("pooDI:\t\t"); watch.Start(); var pooDI = new DI.Container(); pooDI.RegisterType<ITestClass1, TestClass1>(false); for(int i = 0; i < n; ++i) { var c = new TestClass5(); pooDI.BuildUp<TestClass5>(c); } watch.Stop(); Console.WriteLine(watch.Elapsed); watch.Reset(); Console.Write("Unity:\t\t"); watch.Start(); var unity = new UnityContainer(); unity.RegisterType<ITestClass1, TestClass1>(); for(int i = 0; i < n; ++i) { var c = new TestClass5(); unity.BuildUp<TestClass5>(c); } watch.Stop(); Console.WriteLine(watch.Elapsed); watch.Reset(); Console.Write("Ninject:\t"); watch.Start(); var kernel = new StandardKernel(); kernel.Bind<ITestClass1>().To<TestClass1>(); for(int i = 0; i < n; ++i) { var c = new TestClass5(); kernel.Inject(c); } watch.Stop(); Console.WriteLine(watch.Elapsed); watch.Reset(); Console.Write("Autofac:\t"); watch.Start(); var builder = new ContainerBuilder(); builder.RegisterType<TestClass1>().As<ITestClass1>(); var container = builder.Build(); for(int i = 0; i < n; ++i) { var c = new TestClass5(); container.InjectProperties<TestClass5>(c); } watch.Stop(); Console.WriteLine(watch.Elapsed); watch.Reset(); Console.WriteLine("Castle Windsor:\tNot supported"); }