ReflectionPermissionFlag Перечисление

Определение

Определяет допустимое использование значения System.Reflection и пространства имен System.Reflection.Emit.Specifies the permitted use of the System.Reflection and System.Reflection.Emit namespaces.

Это перечисление имеет атрибут FlagsAttribute, который разрешает побитовое сочетание значений его элементов.

public enum class ReflectionPermissionFlag
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum ReflectionPermissionFlag
type ReflectionPermissionFlag = 
Public Enum ReflectionPermissionFlag
Наследование
ReflectionPermissionFlag
Атрибуты

Поля

AllFlags 7

Заданы флаги TypeInformation, MemberAccess и ReflectionEmit.TypeInformation , MemberAccess, and ReflectionEmit are set. Значение AllFlags не включает флаг RestrictedMemberAccess.AllFlags does not include RestrictedMemberAccess.

MemberAccess 2

Допустимы операции вызова на все элементы, независимо от набора привилегий.Invocation operations on all members are allowed, regardless of grant set. Если этот флаг не установлен, операции вызова допустимы только на видимые элементы.If this flag is not set, invocation operations are allowed only on visible members.

NoFlags 0

Допускается перечисление типов и элементов.Enumeration of types and members is allowed. Операции вызова допустимы только на видимые элементы.Invocation operations are allowed on visible types and members.

ReflectionEmit 4

Разрешено генерирование символов отладки.Emitting debug symbols is allowed. Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, этот флаг больше не требуется для генерирования кода.Beginning with the .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 Service Pack 1, this flag is no longer required to emit code.

RestrictedMemberAccess 8

Для кода с неполным доверием предусмотрен ограниченный доступ к элементам.Restricted 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. Этот флаг является новым в .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1.This flag is new in the .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1.

TypeInformation 1

Этот флаг устарел.This flag is obsolete. Чтобы перечислять типы и элементы и исследовать их метаданные, флаги не нужны.No flags are necessary to enumerate types and members and to examine their metadata. Взамен рекомендуется использовать NoFlags.Use NoFlags instead.

Примеры

В следующем примере показано, как использовать перечисление ReflectionPermissionFlag для инициализации нового экземпляра класса ReflectionPermission, который представляет право для выполнения ограниченного доступа к членам.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. Этот пример является частью более крупного примера, предоставляемого для класса ReflectionPermission.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);
Dim restrictedMemberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)

Комментарии

Это перечисление используется классами ReflectionPermission и ReflectionPermissionAttribute.This enumeration is used by the ReflectionPermission and ReflectionPermissionAttribute classes. Если ReflectionPermission не предоставлено, отражение разрешено для всех типов и членов, но операции вызова разрешены только для видимых типов и членов.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.

Внимание!

Поскольку ReflectionPermission может предоставлять доступ к членам закрытого класса, рекомендуется предоставлять ReflectionPermission в Интернете только с флагом RestrictedMemberAccess, а не с другими флагами.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.

В RestrictedMemberAccess появился флаг .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1.The RestrictedMemberAccess flag is introduced in the .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1. Чтобы использовать этот флаг, приложение должно быть предназначено для .NET Framework 3,5.NET Framework 3.5 или более поздней версии.To use this flag, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Важно!

AllFlags не включает флаг RestrictedMemberAccess.AllFlags does not include the RestrictedMemberAccess flag. Чтобы получить маску, включающую все флаги в этом перечислении, необходимо использовать сочетание AllFlags с RestrictedMemberAccess.To get a mask that includes all flags in this enumeration, you must use the combination of AllFlags with RestrictedMemberAccess.

Начиная с .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1флаг ReflectionEmit больше не требуется для выдачи кода, если отладочные символы не создаются.Starting with the .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1, the ReflectionEmit flag is no longer required to emit code, unless debug symbols are emitted. Чтобы использовать эту функцию, приложение должно быть предназначено для .NET Framework 3,5.NET Framework 3.5 или более поздней версии.To use this feature, your application should target the .NET Framework 3,5.NET Framework 3.5 or later.

Начиная с .NET Framework 2.0.NET Framework 2.0флаг TypeInformation больше не требуется для отражения неоткрытых типов и членов. флаг помечен как устаревший.Starting with the .NET Framework 2.0.NET Framework 2.0, the TypeInformation flag is no longer required to reflect on nonpublic types and members; the flag has been marked obsolete.

Применяется к

Дополнительно