Partilhar via


ReflectionPermissionFlag Enumeração

Definição

Cuidado

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

Especifica o uso permitido dos namespaces System.Reflection e System.Reflection.Emit.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

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
Herança
ReflectionPermissionFlag
Atributos

Campos

AllFlags 7

TypeInformation, MemberAccess e ReflectionEmit estão definidos. AllFlags não inclui RestrictedMemberAccess.

MemberAccess 2

As operações de invocação em todos os membros são permitidas, independentemente do conjunto de concessões. Se este sinalizador não for definido, as operações de invocação serão permitidas apenas em membros visíveis.

NoFlags 0

A enumeração de tipos e membros é permitida. As operações de invocação são permitidas em membros e tipos visíveis.

ReflectionEmit 4

A emissão de símbolos de depuração é permitida. A partir do .NET Framework Service Pack 1 2.0, esse sinalizador não é mais necessário para emitir código.

RestrictedMemberAccess 8

O acesso de membro restrito é fornecido para o código parcialmente confiável. O código parcialmente confiável pode acessar membros e tipos não públicos, mas somente se o conjunto de concessões do código parcialmente confiável incluir todas as permissões no conjunto de concessões do assembly que contém os membros e tipos não públicos sendo acessados. Esse sinalizador é novo no .NET Framework 2.0 SP1.

TypeInformation 1

Esse sinalizador é obsoleto. Não é necessário nenhum sinalizador para enumerar os tipos e membros e examinar seus metadados. Use NoFlags em seu lugar.

Exemplos

O exemplo a ReflectionPermission seguir mostra como usar a ReflectionPermissionFlag enumeração para inicializar uma nova instância da classe que representa o direito de executar o acesso restrito ao membro. Este exemplo faz parte de um exemplo maior fornecido para a ReflectionPermission classe.

Para obter um exemplo que mostra como usar o sinalizador RestrictedMemberAccess com código da Internet, consulte Passo a passo: Emitir código em cenários de confiança parcial.

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

Comentários

Cuidado

O CAS (Code Access Security) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não respeitam as anotações CAS e produzem erros se AS APIs relacionadas ao CAS forem usadas. Os desenvolvedores devem buscar meios alternativos de realizar tarefas de segurança.

Essa enumeração é usada pelas classes e ReflectionPermissionAttribute pelas ReflectionPermission classes. Se não ReflectionPermission for concedida, a reflexão será permitida em todos os tipos e membros, mas as operações de invocação serão permitidas somente em tipos visíveis e membros. Para obter mais informações, consulte Security Considerations for Reflection (Considerações sobre segurança relacionadas à reflexão).

Cuidado

Como ReflectionPermission pode fornecer acesso a membros de classe privada, recomendamos que você conceda ReflectionPermission ao código da Internet apenas com o RestrictedMemberAccess sinalizador e não com nenhum outro sinalizador.

O RestrictedMemberAccess sinalizador é introduzido no .NET Framework 2.0 SP1. Para usar esse sinalizador, seu aplicativo deve direcionar o .NET Framework 3.5 ou posterior.

Importante

AllFlags não inclui o RestrictedMemberAccess sinalizador. Para obter uma máscara que inclua todos os sinalizadores nessa enumeração, você deve usar a combinação com AllFlags RestrictedMemberAccess.

A partir do .NET Framework 2.0 SP1, o ReflectionEmit sinalizador não é mais necessário para emitir código, a menos que símbolos de depuração sejam emitidos. Para usar esse recurso, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.

A partir do .NET Framework 2.0, o TypeInformation sinalizador não é mais necessário para refletir sobre tipos não públicos e membros; o sinalizador foi marcado como obsoleto.

Aplica-se a

Confira também