public void Test_private_property() { var foo = new Foo(privateProp: "red"); var publicAccessor = ObjectAccessor.For(typeof(Foo)).GetProperty("PrivateProp", false); Assert.IsNull(publicAccessor); // can't get public accessor to private property var nonPublicAccessor = ObjectAccessor.For(typeof(Foo)).GetProperty("PrivateProp", true); Assert.IsNotNull(nonPublicAccessor); Assert.IsTrue(nonPublicAccessor.IsReadable); Assert.IsTrue(nonPublicAccessor.IsWritable); var value = nonPublicAccessor.GetValue(foo); Assert.AreEqual("red", value); nonPublicAccessor.SetValue(foo, "blue"); Assert.AreEqual("blue", foo.GetPrivatePropValue()); }