Sdílet prostřednictvím


ReflectionPermissionFlag Výčet

Definice

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
ReflectionPermissionFlag
Atributy

Pole

AllFlags 7

TypeInformationReflectionEmit a MemberAccessjsou nastaveny. AllFlags nezahrnuje RestrictedMemberAccess.

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ý.

Platí pro

Viz také