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" }
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" }