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

Определение

Внимание!

Code Access Security is not supported or honored by the runtime.

Определяет допустимое использование значения System.Reflection и пространства имен System.Reflection.Emit.

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class ReflectionPermissionFlag
[System.Flags]
public enum ReflectionPermissionFlag
[System.Flags]
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public enum ReflectionPermissionFlag
[System.Flags]
[System.Serializable]
public enum ReflectionPermissionFlag
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum ReflectionPermissionFlag
[<System.Flags>]
type ReflectionPermissionFlag = 
[<System.Flags>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type ReflectionPermissionFlag = 
[<System.Flags>]
[<System.Serializable>]
type ReflectionPermissionFlag = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ReflectionPermissionFlag = 
Public Enum ReflectionPermissionFlag
Наследование
ReflectionPermissionFlag
Атрибуты

Поля

AllFlags 7

Заданы флаги TypeInformation, MemberAccess и ReflectionEmit. Значение AllFlags не включает флаг RestrictedMemberAccess.

MemberAccess 2

Допустимы операции вызова на все элементы, независимо от набора привилегий. Если этот флаг не установлен, операции вызова допустимы только на видимые элементы.

NoFlags 0

Допускается перечисление типов и элементов. Операции вызова допустимы только на видимые элементы.

ReflectionEmit 4

Разрешено генерирование символов отладки. Начиная с платформа .NET Framework 2.0 с пакетом обновления 1 (SP1) этот флаг больше не требуется для выдачи кода.

RestrictedMemberAccess 8

Для кода с неполным доверием предусмотрен ограниченный доступ к элементам. Код с неполным доверием может допускать неоткрытые типы и элементы, но только в том случае, если набор привилегий кода с неполным доверием включает все разрешения в наборе привилегий сборки, содержащей неоткрытые типы и элементы, к которым выполняется обращение. Этот флаг является новым в платформа .NET Framework 2.0 с пакетом обновления 1 (SP1).

TypeInformation 1

Этот флаг устарел. Чтобы перечислять типы и элементы и исследовать их метаданные, флаги не нужны. Взамен рекомендуется использовать NoFlags.

Примеры

В следующем примере показано, как использовать ReflectionPermissionFlag перечисление для инициализации нового экземпляра ReflectionPermission класса, представляющего право на ограниченный доступ к членам. Этот пример является частью более крупного примера, предоставленного ReflectionPermission для класса.

Пример использования флага RestrictedMemberAccess с кодом Интернета см. в пошаговом руководстве. Создание кода в сценариях с частичным доверием.

ReflectionPermission restrictedMemberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);
Dim restrictedMemberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)

Комментарии

Внимание!

Безопасность доступа к коду (CAS) устарела во всех версиях платформа .NET Framework и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.

Это перечисление используется классами и ReflectionPermissionAttribute классамиReflectionPermission. Если это не ReflectionPermission предоставлено, отражение разрешено для всех типов и членов, но операции вызова разрешены только для видимых типов и членов. Дополнительные сведения см. в разделе Соображения о безопасности для отражения.

Внимание!

Так как ReflectionPermission может предоставлять доступ к членам частного класса, рекомендуется предоставлять ReflectionPermission код в Интернете только с флагом RestrictedMemberAccess , а не с другими флагами.

Флаг RestrictedMemberAccess представлен в платформа .NET Framework 2.0 с пакетом обновления 1 (SP1). Чтобы использовать этот флаг, приложение должно ориентироваться на платформа .NET Framework 3.5 или более поздней версии.

Важно!

AllFlags не включает RestrictedMemberAccess флаг. Чтобы получить маску, содержащую все флаги в этом перечислении, необходимо использовать сочетание AllFlags с RestrictedMemberAccess.

Начиная с платформа .NET Framework 2.0 с пакетом обновления 1 (SP1ReflectionEmit) флаг больше не требуется для выдачи кода, если не создаются отладочные символы. Чтобы использовать эту функцию, приложение должно ориентироваться на платформа .NET Framework 3.5 или более поздней версии.

Начиная с версии платформа .NET Framework 2.0, TypeInformation флаг больше не должен отражаться на неопубликованных типах и членах; флаг помечен как устаревший.

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

См. также раздел