Beispiel #1
0
        private static IKernel InitializeContainer()
        {
            IKernel container = new DefaultKernel();

            container.AddComponentInstance <AccountRepository>(
                typeof(IAccountRepository),
                new AccountRepository(
                    Path.Combine(
                        Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
                        "DinDin")));
            container.AddComponent <AccountServices>(typeof(IAccountServices), LifestyleType.Singleton, true);
            return(container);
        }
		public void ChildKernelOverloadsParentKernel2()
		{
			DefaultTemplateEngine instance1 = new DefaultTemplateEngine();
			DefaultTemplateEngine instance2 = new DefaultTemplateEngine();

			IKernel subkernel = new DefaultKernel();
			kernel.AddChildKernel(subkernel);

			// subkernel added first, then populated with overloaded components after

			kernel.AddComponentInstance("engine", instance2);
			Assert.AreEqual(instance2, kernel["engine"]);
			Assert.AreEqual(instance2, subkernel["engine"]);

			subkernel.AddComponentInstance("engine", instance1);
			Assert.AreEqual(instance1, subkernel["engine"]);
			Assert.AreEqual(instance2, kernel["engine"]);
		}
		public void ChildKernelOverloadsParentKernel1()
		{
			DefaultTemplateEngine instance1 = new DefaultTemplateEngine();
			DefaultTemplateEngine instance2 = new DefaultTemplateEngine();

			// subkernel added with already registered components that overload parent components.

			IKernel subkernel = new DefaultKernel();
			subkernel.AddComponentInstance("engine", instance1);
			Assert.AreEqual(instance1, subkernel["engine"]);

			kernel.AddComponentInstance("engine", instance2);
			Assert.AreEqual(instance2, kernel["engine"]);

			kernel.AddChildKernel(subkernel);
			Assert.AreEqual(instance1, subkernel["engine"]);
			Assert.AreEqual(instance2, kernel["engine"]);
		}