示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }