Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ReflectionPermissionFlag Enumeration

Specifies the permitted use of the System.Reflection and System.Reflection.Emit namespaces.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Namespace:  System.Security.Permissions
Assembly:  mscorlib (in mscorlib.dll)

public enum ReflectionPermissionFlag

Member nameDescription
NoFlagsEnumeration of types and members is allowed. Invocation operations are allowed on visible types and members.
TypeInformation Obsolete. This flag is obsolete. No flags are necessary to enumerate types and members and to examine their metadata. Use NoFlags instead.
MemberAccessInvocation operations on all members are allowed, regardless of grant set. If this flag is not set, invocation operations are allowed only on visible members.
ReflectionEmitEmitting debug symbols is allowed. Beginning with the .NET Framework version 2.0 Service Pack 1, this flag is no longer required to emit code.
AllFlagsTypeInformation, MemberAccess, and ReflectionEmit are set. AllFlags does not include RestrictedMemberAccess.
RestrictedMemberAccessRestricted member access is provided for partially trusted code. Partially trusted code can access nonpublic types and members, but only if the grant set of the partially trusted code includes all permissions in the grant set of the assembly that contains the nonpublic types and members being accessed. This flag is new in the .NET Framework 2.0 SP1.

This enumeration is used by the ReflectionPermission and ReflectionPermissionAttribute classes. If no ReflectionPermission is granted, reflection is allowed on all types and members, but invocation operations are allowed only on visible types and members. For more information, see Security Considerations for Reflection.

Caution noteCaution:

Because ReflectionPermission can provide access to private class members, we recommend that you grant ReflectionPermission to Internet code only with the RestrictedMemberAccess flag, and not with any other flags.

The RestrictedMemberAccess flag is introduced in the .NET Framework 2.0 SP1. To use this flag, your application should target the .NET Framework version 3.5. For more information, see .NET Framework 3.5 Architecture.

Important noteImportant Note:

AllFlags does not include the RestrictedMemberAccess flag. To get a mask that includes all flags in this enumeration, you must use the combination of AllFlags with RestrictedMemberAccess.

Starting with the .NET Framework 2.0 SP1, the ReflectionEmit flag is no longer required to emit code, unless debug symbols are emitted. (See Security Issues in Reflection Emit.) To use this feature, your application should target the .NET Framework 3.5.

Starting with the .NET Framework 2.0, the TypeInformation flag is no longer required to reflect on nonpublic types and members; the flag has been marked obsolete.

The following example shows how to use the ReflectionPermissionFlag enumeration to initialize a new instance of the ReflectionPermission class that represents the right to perform restricted member access. This example is part of a larger example that is provided for the ReflectionPermission class.

For an example that shows how to use the RestrictedMemberAccess flag with Internet code, see Walkthrough: Emitting Code in Partial Trust Scenarios.

ReflectionPermission restrictedMemberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

Community Additions

© 2017 Microsoft