예제 #1
0
        public void TestReflectionFieldGetChildFirst()
        {
            var testObject = new ReflectionTestObject();
            var val        = testObject.GetFieldValue <string>("PrivateValueCollide");

            Assert.Same("SECRET_COLLIDE_CORRECT", val);
        }
예제 #2
0
        public void TestReflectionGetFieldValueBoxed()
        {
            var testObject = new ReflectionTestObject();
            var boxedValue = testObject.GetFieldValue <object>("TestEnum");

            Assert.Equal(TestEnum.Test2, boxedValue);
        }
예제 #3
0
        public void TestReflectionGetEnumField()
        {
            var testObject = new ReflectionTestObject();
            var enumValue  = testObject.GetFieldValue <TestEnum>("TestEnum");

            Assert.Equal(TestEnum.Test2, enumValue);
        }
예제 #4
0
        public void TestReflectionFieldGetAndSet()
        {
            var testObject = new ReflectionTestObject();

            testObject.SetFieldValue("PrivateValue", "test");
            var ret = testObject.GetFieldValue <string>("PrivateValue");

            Assert.Same("test", ret);
        }
예제 #5
0
        public void TestReflectionCallVoid()
        {
            var testObject = new ReflectionTestObject();

            testObject.InvokeMethod("Test2", "testValue");

            var val = testObject.GetFieldValue <string>("PrivateValue1");

            Assert.Same("testValue", val);
        }
예제 #6
0
        public void TestReflectionSetFieldValueBoxed()
        {
            var testObject = new ReflectionTestObject();

            testObject.SetFieldValue("PrivateValue2", 123);
            Assert.Equal(123, testObject.GetFieldValue <object>("PrivateValue2"));

            var testStruct = new MyTestStruct(123);

            testStruct.SetStructFieldValue("privateObjectField", 456);
            Assert.Equal(456, testStruct.GetFieldValue <object>("privateObjectField"));
        }