public void Can_Get_Field() { var testObject = new TestObject(); var fieldInfo = typeof(TestObject).GetField("SomeField"); var getter = fieldInfo.DelegateForGet(); Assert.AreEqual(5, getter(testObject)); }
public void Can_Get_Property() { var testObject = new TestObject(); var propertyInfo = typeof(TestObject).GetProperty("SomeProperty"); var getter = propertyInfo.DelegateForGet(); Assert.AreEqual(0, getter(testObject)); }
public void Can_Set_Property() { var testObject = new TestObject(); var testObjectAsObj = (object)testObject; var propertyInfo = typeof(TestObject).GetProperty("SomeProperty"); var setter = propertyInfo.DelegateForSet(); const int valueToSet = 123; Assert.DoesNotThrow(() => setter(ref testObjectAsObj, valueToSet)); Assert.AreEqual(valueToSet, testObject.SomeProperty); }
public void Can_Set_Field() { var testObject = new TestObject(); var testObjectAsObj = (object)testObject; var fieldInfo = typeof(TestObject).GetField("SomeField"); var setter = fieldInfo.DelegateForSet(); const int valueToSet = 123; Assert.DoesNotThrow(() => setter(ref testObjectAsObj, valueToSet)); Assert.AreEqual(valueToSet, testObject.SomeField); }
public void Can_Get_Const_Backing_Field() { var testObject = new TestObject(); var propertyInfo = typeof(TestObject).GetProperty("SomeConstProperty"); var getter = propertyInfo.DelegateForGet(); Assert.AreEqual("This is a const field", getter(testObject)); }
public void Can_Get_Readonly_Backing_Field() { var testObject = new TestObject(); var propertyInfo = typeof(TestObject).GetProperty("SomeReadonlyProperty"); var getter = propertyInfo.DelegateForGet(); Assert.AreEqual(55, getter(testObject)); }