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
- Наследование
- Атрибуты
Поля
AllFlags | 7 | Заданы флаги |
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
флаг больше не должен отражаться на неопубликованных типах и членах; флаг помечен как устаревший.