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

Определение

Внимание!

Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}

Определяет допустимое использование значения 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]
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.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.

В .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.

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

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