public void ComponentUnregistersProperly() { IKernel kernel = new DefaultKernel(); kernel.AddSubSystem(SubSystemConstants.NamingKey, new KeySearchNamingSubSystem(delegate(string key) { return key.StartsWith("2"); })); kernel.AddComponent("1.common", typeof(ICommon), typeof(CommonImpl1)); kernel.AddComponent("2.common", typeof(ICommon), typeof(CommonImpl2)); ICommon common = kernel[typeof(ICommon)] as ICommon; Assert.IsNotNull(common); Assert.AreEqual(typeof(CommonImpl2), common.GetType()); kernel.RemoveComponent("2.common"); common = kernel[typeof(ICommon)] as ICommon; Assert.IsNotNull(common); Assert.AreEqual(typeof(CommonImpl1), common.GetType()); kernel.RemoveComponent("1.common"); Assert.AreEqual(0, kernel.GetHandlers(typeof(ICommon)).Length); }