예제 #1
0
		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());
		}