Example #1
0
        public void TestWeakBindings()
        {
            SimpleInterfaceImplementer    one = new SimpleInterfaceImplementer();
            SimpleInterfaceImplementerTwo two = new SimpleInterfaceImplementerTwo();
            IBinding binding = binder.Bind <ISimpleInterface>().To(one).Weak();

            binding.valueConstraint = BindingConstraintType.ONE;
            TestDelegate testDelegate = delegate
            {
                binder.Bind <ISimpleInterface>().To(two).valueConstraint = BindingConstraintType.ONE;
                IBinding retrievedBinding = binder.GetBinding <ISimpleInterface>();
                Assert.NotNull(retrievedBinding);
                Assert.NotNull(retrievedBinding.value);
                Console.WriteLine(retrievedBinding.value);
                Assert.AreEqual(retrievedBinding.value, two);
            };

            Assert.DoesNotThrow(testDelegate);             //Second binding "two" overrides weak binding "one"
        }
Example #2
0
		public void TestWeakBindings()
		{
			SimpleInterfaceImplementer one = new SimpleInterfaceImplementer();
			SimpleInterfaceImplementerTwo two = new SimpleInterfaceImplementerTwo();
			IBinding binding = binder.Bind<ISimpleInterface>().To(one).Weak();

			binding.valueConstraint = BindingConstraintType.ONE;
			TestDelegate testDelegate = delegate
			{
				binder.Bind<ISimpleInterface>().To(two).valueConstraint = BindingConstraintType.ONE;
				IBinding retrievedBinding = binder.GetBinding<ISimpleInterface>();
				Assert.NotNull(retrievedBinding);
				Assert.NotNull(retrievedBinding.value);
				Console.WriteLine(retrievedBinding.value);
				Assert.AreEqual(retrievedBinding.value, two);
			};

			Assert.DoesNotThrow(testDelegate); //Second binding "two" overrides weak binding "one"

		}