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); }
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); }