public void CannotInvokeNonPublicMethodWhenCallsMadeThroughReflection()
        {
            ReflectionPermission permission = new ReflectionPermission(ReflectionPermissionFlag.TypeInformation);
            permission.Deny();

            XmlIncludeTypeDataCollection xmlIncludeTypes = new XmlIncludeTypeDataCollection();
            xmlIncludeTypes.Add(new XmlIncludeTypeData("shouldNotBeAccessible", typeof(TestingInternal.ShouldNotBeAccessible).AssemblyQualifiedName));

            RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new ConfigurationDictionary()));
            MethodInfo collectTypes = view.GetType().GetMethod("CollectTypes", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(XmlIncludeTypeDataCollection)}, null);
            object returnedTypes = collectTypes.Invoke(view, new object[] { xmlIncludeTypes });
            Type [] collectedTypes = returnedTypes as Type[];

            Assert.AreEqual(1, collectedTypes.Length);
        }
コード例 #2
0
        public void CannotInvokeNonPublicMethodWhenCallsMadeThroughReflection()
        {
            ReflectionPermission permission = new ReflectionPermission(ReflectionPermissionFlag.TypeInformation);

            permission.Deny();

            XmlIncludeTypeDataCollection xmlIncludeTypes = new XmlIncludeTypeDataCollection();

            xmlIncludeTypes.Add(new XmlIncludeTypeData("shouldNotBeAccessible", typeof(TestingInternal.ShouldNotBeAccessible).AssemblyQualifiedName));

            RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new ConfigurationDictionary()));
            MethodInfo collectTypes       = view.GetType().GetMethod("CollectTypes", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(XmlIncludeTypeDataCollection) }, null);
            object     returnedTypes      = collectTypes.Invoke(view, new object[] { xmlIncludeTypes });

            Type [] collectedTypes = returnedTypes as Type[];

            Assert.AreEqual(1, collectedTypes.Length);
        }