public void HandlerTest()
		{
			SimpleContainer sc = new SimpleContainer();
			ITest1 t1 = null;
			sc.Handler<ITest1>((i) =>
			{
				Assert.AreEqual(sc, i);
				t1 = new Test1();
				return t1;
			});

			var result1 = sc.GetInstance<ITest1>();
			Assert.IsNotNull(t1);
			Assert.IsNotNull(result1);
			Assert.AreEqual(t1, result1);

			Test2 t2 = null;
			sc.Handler<ITest2, Test2>(i =>
			{
				Assert.AreEqual(sc, i);
				t2 = new Test2();
				return t2;
			});

			var result2 = sc.GetInstance<ITest2>();
			Assert.IsNotNull(t2);
			Assert.IsNotNull(result2);
			Assert.AreEqual(t2, result2);

			result2 = sc.GetInstance<Test2>();
			Assert.IsNotNull(result2);
			Assert.AreEqual(t2, result2);
		}
		public void InstanceTest()
		{
			SimpleContainer sc = new SimpleContainer();
			ITest1 ti = new Test1();
			sc.Instance<ITest1, Test1>(ti);
			var result = sc.GetInstance<ITest1>();
			Assert.AreEqual(result, ti);
			var result2 = sc.GetInstance<Test1>();
			Assert.AreEqual(result2, ti);

			Test2 t2 = new Test2();
			sc.Instance(t2);
			var result3 = sc.GetInstance<Test2>();
			Assert.AreEqual(result3, t2);

			Test3 t3 = new Tests.Test3();
			sc.Instance<ITest3>(t3);
			var result4 = sc.GetInstance<ITest3>();
			Assert.AreEqual(result4, t3);
		}