public void ObjectToPropertyDependency() { var obj = new ObjectToPropertyDependencyTestObject(1, 2); Assert.AreEqual(1, obj.Prop1); Assert.AreEqual(1, obj.obj.Prop1); Assert.AreEqual(2, obj.obj.Prop2); var n = 0; obj.Register("Prop1", () => n++); obj.obj.Prop1 = 23; obj.obj.Prop2 = 42; Assert.AreEqual(2, n); Assert.AreEqual(23, obj.Prop1); Assert.AreEqual(23, obj.obj.Prop1); Assert.AreEqual(42, obj.obj.Prop2); }