ReflectionPermissionFlag Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- Atrybuty
Pola
AllFlags | 7 |
|
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.