public void CustomBaObject() { var obj = new MyObject(); obj.Name = "Bart"; var changes = obj.GetChanges(); Assert.AreEqual(1, changes.Count); Assert.IsTrue(changes.ContainsKey(nameof(obj.Name))); obj.Greeting = "Greetings"; Assert.AreEqual("Bart", obj.Name); Assert.AreEqual("Greetings", obj.Greeting); var fld = obj.Fields[nameof(obj.Name)]; Assert.IsNotNull(fld); Assert.AreEqual(typeof(string), fld.FieldType); }