public void PublicSetValueTypeInvalidInstanceStrict() { var setter = (typeof(PublicClass).Reflection().GetDescriptor("publicField") as IValueMemberDescriptor).ToCompiledSetValue(); var instance = new NonPublicClass(); Assert.Throws <InvalidCastException>(() => setter(instance, 42)); }
public void NonPublicSetPrivateValueType() { var setter = (typeof(NonPublicClass).Reflection().GetDescriptor("privateField") as IValueMemberDescriptor).ToCompiledSetValue(); var instance = new NonPublicClass(); setter(instance, 42); Assert.Equal(42, instance.GetPrivateField()); }
public void NonPublicSetInvalidReferenceTypeLoose() { var setter = (typeof(NonPublicClass).Reflection().GetDescriptor("disposableField") as IValueMemberDescriptor).ToCompiledSetValue(false); var instance = new NonPublicClass(); setter(instance, 42); Assert.Throws <EntryPointNotFoundException>(() => instance.disposableField.Dispose()); }
public void NonPublicGetReferenceTypeLoose() { var getter = (typeof(NonPublicClass).Reflection().GetDescriptor("disposableField") as IValueMemberDescriptor).ToCompiledGetValue(false); var instance = new NonPublicClass(); instance.disposableField = Actions.Null.ToDisposable(); Assert.NotNull(getter(instance)); }
public void NonPublicGetValueTypeLoose() { var getter = (typeof(NonPublicClass).Reflection().GetDescriptor("publicField") as IValueMemberDescriptor).ToCompiledGetValue(false); var instance = new NonPublicClass(); instance.publicField = 42; Assert.Equal(42, getter(instance)); }
public void NonPublicSetReferenceType() { var setter = (typeof(NonPublicClass).Reflection().GetDescriptor("disposableField") as IValueMemberDescriptor).ToCompiledSetValue(); var instance = new NonPublicClass(); DateTime?value = null; setter(instance, Actions.Create(() => value = DateTime.Now).ToDisposable()); Assert.NotNull(instance.disposableField); instance.disposableField.Dispose(); Assert.NotNull(value); }