public void ShouldWorkEvenWithLowestPossiblePermissions() { // based on: https://msdn.microsoft.com/en-us/library/bb384237(v=vs.110).aspx Evidence evidence = new Evidence(); evidence.AddHostEvidence(new Zone(SecurityZone.Internet)); PermissionSet permissionSet = new NamedPermissionSet("Internet", SecurityManager.GetStandardSandbox(evidence)); permissionSet.SetPermission(new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)); AppDomainSetup appDomainSetup = new AppDomainSetup { ApplicationBase = "." }; AppDomain sandbox = AppDomain.CreateDomain("Sandbox", evidence, appDomainSetup, permissionSet, null); CrossDomain crossDomain = (CrossDomain)sandbox.CreateInstanceAndUnwrap(typeof(CrossDomain).Assembly.FullName, typeof(CrossDomain).FullName); Assert.AreEqual(3, crossDomain.RunArrayProvider()); }