public void GetSetValueTest() { string cityname = "Brisbane"; var a = new Address() { City = new City() { Name = cityname, State = State.QLD } }; Person p = new Person { Address = a }; string propname = "Address.City.Name"; var npd = new NestedPropertyDescriptor(typeof(Person), propname); // Get the value Assert.Equal(p.Address.City.Name, npd.GetValue(p)); Assert.Equal(cityname, npd.GetValue(p)); // Set the city name cityname = "Gold Coast"; npd.SetValue(p, cityname); Assert.Equal(p.Address.City.Name, npd.GetValue(p)); Assert.Equal(cityname, npd.GetValue(p)); }