ReflectionPermissionFlag ReflectionPermissionFlag ReflectionPermissionFlag ReflectionPermissionFlag Enum

Определение

Определяет допустимое использование значения 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
Наследование
ReflectionPermissionFlagReflectionPermissionFlagReflectionPermissionFlagReflectionPermissionFlag
Атрибуты

Поля

AllFlags AllFlags AllFlags AllFlags 7

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

MemberAccess MemberAccess MemberAccess 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 NoFlags NoFlags NoFlags 0

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

ReflectionEmit ReflectionEmit ReflectionEmit 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 RestrictedMemberAccess RestrictedMemberAccess 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 TypeInformation TypeInformation 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.

В .NET Framework 2.0 с пакетом обновления 1 (SP1).NET Framework 2.0 SP1 появился флаг RestrictedMemberAccess.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.

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

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