Udostępnij za pośrednictwem


ReflectionPermissionFlag Wyliczenie

Definicja

Przestroga

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

Określa dozwolone użycie System.Reflection przestrzeni nazw i System.Reflection.Emit .

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

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
Dziedziczenie
ReflectionPermissionFlag
Atrybuty

Pola

AllFlags 7

TypeInformation , MemberAccessi ReflectionEmit są ustawione. AllFlags nie zawiera RestrictedMemberAccess.

MemberAccess 2

Operacje wywołania na wszystkich elementach członkowskich są dozwolone, niezależnie od zestawu dotacji. Jeśli ta flaga nie jest ustawiona, operacje wywołania są dozwolone tylko dla widocznych elementów członkowskich.

NoFlags 0

Wyliczanie typów i elementów członkowskich jest dozwolone. Operacje wywołania są dozwolone na widocznych typach i elementach członkowskich.

ReflectionEmit 4

Emitowanie symboli debugowania jest dozwolone. Począwszy od .NET Framework dodatku Service Pack 2.0, ta flaga nie jest już wymagana do emitowania kodu.

RestrictedMemberAccess 8

Ograniczony dostęp do składowych jest udostępniany dla częściowo zaufanego kodu. Częściowo zaufany kod może uzyskiwać dostęp do typów niepublicowych i elementów członkowskich, ale tylko wtedy, gdy zestaw dotacji częściowo zaufanego kodu zawiera wszystkie uprawnienia w zestawie dotacji zestawu, który zawiera niepublicowe typy i dostęp do elementów członkowskich. Ta flaga jest nowa w .NET Framework 2.0 SP1.

TypeInformation 1

Ta flaga jest przestarzała. Do wyliczania typów i elementów członkowskich nie są niezbędne żadne flagi oraz ich metadane. Zamiast tego użyj polecenia cmdlet NoFlags.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą ReflectionPermissionFlag wyliczenia zainicjować nowe wystąpienie klasy reprezentujące prawo do wykonywania ograniczonego ReflectionPermission dostępu do składowych. Ten przykład jest częścią większego przykładu udostępnionego ReflectionPermission dla klasy.

Przykład pokazujący, jak używać flagi RestrictedMemberAccess z kodem internetowym, zobacz Przewodnik: emitowanie kodu w scenariuszach częściowych zaufania.

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

Uwagi

Przestroga

Zabezpieczenia dostępu kodu (CAS) zostały uznane za przestarzałe we wszystkich wersjach .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.

To wyliczenie jest używane przez ReflectionPermission klasy i ReflectionPermissionAttribute . Jeśli nie ReflectionPermission udzielono żadnych uprawnień, odbicie jest dozwolone we wszystkich typach i elementach członkowskich, ale operacje wywołania są dozwolone tylko dla widocznych typów i elementów członkowskich. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące zabezpieczeń do odbicia.

Przestroga

Ponieważ ReflectionPermission może zapewnić dostęp do prywatnych składowych klas, zalecamy przyznanie ReflectionPermission kodu internetowego RestrictedMemberAccess tylko z flagą, a nie z innymi flagami.

Flaga RestrictedMemberAccess jest wprowadzana w .NET Framework 2.0 SP1. Aby użyć tej flagi, aplikacja powinna być docelowa .NET Framework 3.5 lub nowszej.

Ważne

AllFlags nie zawiera flagi RestrictedMemberAccess . Aby uzyskać maskę zawierającą wszystkie flagi w tym wyliczenie, należy użyć kombinacji AllFlags elementu z RestrictedMemberAccess.

Począwszy od .NET Framework 2.0 SP1, ReflectionEmit flaga nie jest już wymagana do emitowania kodu, chyba że są emitowane symbole debugowania. Aby użyć tej funkcji, aplikacja powinna być przeznaczona dla .NET Framework 3.5 lub nowszej.

Począwszy od .NET Framework 2.0, TypeInformation flaga nie jest już wymagana do odzwierciedlenia w przypadku typów niepublicowych i elementów członkowskich; flaga została oznaczona jako przestarzała.

Dotyczy

Zobacz też