ReflectionPermissionFlag Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- Atributos
Campos
AllFlags | 7 |
|
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.