public void TestNonAccessibleGenericTypeParamenterBugInReflectionEmit() { var reflector = new FastNetReflector(); var sizeField = reflector.ForClass(typeof(GenericClass <NotAccessible>)).GetDeclaredField("_size"); var obj = new GenericClass <NotAccessible>(); sizeField.Set(obj, 42); Assert.AreEqual(42, sizeField.Get(obj)); }
public void TestDynamicMethodsOnSecurityCriticalTypes() { FastNetReflector reflector = new FastNetReflector(); IReflectField sizeField = reflector.ForClass(typeof(List <NotAccessible>)).GetDeclaredField("_size"); List <NotAccessible> obj = new List <NotAccessible>(); sizeField.Set(obj, 42); Assert.AreEqual(42, sizeField.Get(obj)); }
public void TestNullAssignmentToValueTypeField() { var reflector = new FastNetReflector(); var field = reflector.ForClass(typeof(ValueTypeContainer)).GetDeclaredField("_value"); var subject = new ValueTypeContainer(0xDb40); field.Set(subject, null); Assert.AreEqual(0, subject.Value); field.Set(subject, 42); Assert.AreEqual(42, subject.Value); }