TypeBuilder.IsSecurityTransparent Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob der aktuelle Typ transparent ist und daher keine wichtigen Vorgänge ausführen kann.

public:
 virtual property bool IsSecurityTransparent { bool get(); };
public override bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overrides ReadOnly Property IsSecurityTransparent As Boolean

Eigenschaftswert

Boolean

true, wenn der Typ sicherheitstransparent ist, andernfalls false.

Ausnahmen

Der aktuelle dynamische Typ wurde nicht durch Aufrufen der CreateType()-Methode erstellt.

Hinweise

Die IsSecurityCritical IsSecuritySafeCritical Eigenschaften , und melden IsSecurityTransparent die Transparenzebene des Typs, wie von der Common Language Runtime (CLR) bestimmt. Die Kombinationen dieser Eigenschaften sind in der folgenden Tabelle dargestellt:

Sicherheitsstufe IsSecurityCritical IsSecuritySafeCritical IsSecurityTransparent
Kritisch true false false
Sicherheitskritisch true true false
Transparent false false true

Ein Verwenden dieser Eigenschaften ist deutlich einfacher als das Untersuchen der Sicherheitsanmerkungen einer Assembly und der zugehörigen Typen, das Überprüfen der aktuellen Vertrauensebene und das Versuchen, die Laufzeitregeln zu duplizieren.

Die Laufzeit beginnt mit der Auswertung von Transparenzebenen in der Assembly. Wenn die dynamische Assembly beispielsweise sicherheitskritisch ist, werden Anmerkungen zu Typen ignoriert, und alle Typen sind sicherheitskritisch.

Standardmäßig erbt eine dynamische Assembly die Transparenz der Assembly, die sie ausgibt. Sie können diese Standardeinstellung überschreiben, indem Sie die AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) Methodenüberladung , oder verwenden und AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) Sicherheitsattribute angeben. Sie können die Sicherheitsebenen nicht erhöhen, indem Sie dies tun. Das heißt, transparenter Code kann keinen sicherheitskritischen oder sicherheitssicher-kritischen Code ausgeben. Attribute müssen angegeben werden, wenn die dynamische Assembly erstellt wird, oder sie werden erst wirksam, wenn die Assembly auf dem Datenträger gespeichert und erneut geladen wurde.

Hinweis

Die Standardvererbung ist auf die Auswertung der Transparenz durch die Laufzeit beschränkt. Auf die dynamische Assembly werden keine Attribute angewendet. Wenn Sie Sicherheitsattribute hinzufügen möchten, müssen Sie sie selbst anwenden.

Weitere Informationen zur Reflektionsausgaben und Transparenz finden Sie unter Sicherheitsprobleme bei der Reflektionsausgaben. Informationen zur Transparenz finden Sie unter Sicherheitsänderungen.

Gilt für

Siehe auch