ReflectionPermissionFlag Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Upozornění
Code Access Security is not supported or honored by the runtime.
Určuje povolené použití oborů System.Reflection názvů a System.Reflection.Emit oborů názvů.
Tento výčet podporuje bitové kombinace hodnot jeho členů.
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
- Dědičnost
- Atributy
Pole
AllFlags | 7 |
|
MemberAccess | 2 | Operace vyvolání u všech členů jsou povolené bez ohledu na sadu grantů. Pokud tento příznak není nastavený, jsou operace vyvolání povoleny pouze u viditelných členů. |
NoFlags | 0 | Výčet typů a členů je povolený. Operace vyvolání jsou povolené u viditelných typů a členů. |
ReflectionEmit | 4 | Generování symbolů ladění je povolené. Počínaje rozhraním .NET Framework 2.0 Service Pack 1 už tento příznak není nutný k vygenerování kódu. |
RestrictedMemberAccess | 8 | Omezený přístup člena je k dispozici pro částečně důvěryhodný kód. Částečně důvěryhodný kód má přístup k nepublikovaným typům a členům, ale pouze v případě, že sada grantů částečně důvěryhodného kódu zahrnuje všechna oprávnění v sadě udělení sestavení, která obsahuje nepublikované typy a členy, ke kterým se přistupuje. Tento příznak je nový v rozhraní .NET Framework 2.0 SP1. |
TypeInformation | 1 | Tento příznak je zastaralý. K vytvoření výčtu typů a členů a k prozkoumání jejich metadat nejsou potřeba žádné příznaky. Místo toho použijte NoFlags. |
Příklady
Následující příklad ukazuje, jak pomocí výčtu ReflectionPermissionFlag
inicializovat novou instanci ReflectionPermission třídy, která představuje právo provádět omezený přístup člena. Tento příklad je součástí většího příkladu ReflectionPermission , který je k dispozici pro třídu.
Příklad, který ukazuje, jak používat příznak RestrictedMemberAccess s internetovým kódem, viz Návod: Generování kódu ve scénářích částečné důvěryhodnosti.
ReflectionPermission restrictedMemberAccessPerm = new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess);
Dim restrictedMemberAccessPerm As New ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)
Poznámky
Upozornění
Zabezpečení přístupu k kódu (CAS) je zastaralé ve všech verzích rozhraní .NET Framework a .NET. Nedávné verze rozhraní .NET nedotknou poznámek CAS a v případě použití rozhraní API souvisejících s CAS se nevygenerují chyby. Vývojáři by měli hledat alternativní způsoby provádění úloh zabezpečení.
Tento výčet je používán třídami ReflectionPermission a ReflectionPermissionAttribute třídami. Pokud není udělena žádná ReflectionPermission , je reflexe povolená pro všechny typy a členy, ale operace vyvolání jsou povoleny pouze u viditelných typů a členů. Další informace naleznete v tématu Aspekty zabezpečení pro reflexi.
Upozornění
Vzhledem k tomu ReflectionPermission , že umožňuje přístup k soukromým členům třídy, doporučujeme udělit ReflectionPermission internetový kód pouze s příznakem RestrictedMemberAccess
, a ne s jinými příznaky.
Příznak RestrictedMemberAccess
se zavádí v rozhraní .NET Framework 2.0 SP1. Pokud chcete tento příznak použít, měla by vaše aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.
Důležité
AllFlags
neobsahuje RestrictedMemberAccess
příznak. Chcete-li získat masku, která obsahuje všechny příznaky v tomto výčtu, musíte použít kombinaci AllFlags
s RestrictedMemberAccess
.
Počínaje rozhraním .NET Framework 2.0 SP1 ReflectionEmit
už není příznak nutný k vygenerování kódu, pokud se nevygenerují symboly ladění. Pokud chcete tuto funkci použít, měla by aplikace cílit na rozhraní .NET Framework 3.5 nebo novější.
Počínaje rozhraním .NET Framework 2.0 TypeInformation
už se příznak nevyžaduje, aby odrážel nepublikované typy a členy. Příznak byl označený jako zastaralý.