Freigeben über


x:ClassModifier-Direktive

Ändert das XAML-Kompilierungsverhalten, wenn x:Class ebenfalls bereitgestellt wird. Anstatt eine partielle class mit einer Public Zugriffsebene (Standardeinstellung) zu erstellen, wird die bereitgestellte x:Class mit einer NotPublic Zugriffsebene erstellt. Dieses Verhalten wirkt sich auf die Zugriffsebene für die Klasse in den generierten Assemblys aus.

XAML-Attributverwendung

<object x:Class="namespace.classname" x:ClassModifier="NotPublic">
   ...
</object>

XAML-Werte

Wert Beschreibung
NotPublic- Die genaue Zeichenfolge, die übergeben werden soll, um TypeAttributes.Public im Vergleich zu TypeAttributes.NotPublic anzugeben, variiert je nach der verwendeten CodeBehind-Programmiersprache. Siehe Anmerkungen.

Abhängigkeiten

x:Class muss auch für dasselbe Element bereitgestellt werden, und dieses Element muss das Stammelement auf einer Seite sein. Weitere Informationen finden Sie unter [MS-XAML] Section 6.3.1.8.

Bemerkungen

Der Wert der x:ClassModifier in .NET XAML Services-Verwendung variiert je nach Programmiersprache. Die zu verwendende Zeichenfolge hängt davon ab, wie jede Sprache ihre CodeDomProvider implementiert, und die Typkonverter, die sie zurückgibt, um die Bedeutungen für TypeAttributes.Public und TypeAttributes.NotPubliczu definieren und ob die Groß-/Kleinschreibung beachtet wird.

  • Bei C# wird die Zeichenfolge, die übergeben werden soll, um TypeAttributes.NotPublic festzulegen, internal.

  • Für Microsoft Visual Basic .NET ist die zu übergebende Zeichenfolge zum Festlegen TypeAttributes.NotPublicFriend.

  • Für C++/CLI gibt es keine Ziele, die das Kompilieren von XAML unterstützen; daher ist der übergebene Wert nicht angegeben.

Sie können auch TypeAttributes.Public (public in C#, Public in Visual Basic) angeben); Die Angabe TypeAttributes.Public erfolgt jedoch selten, da TypeAttributes.Public bereits das Standardverhalten ist.

Andere Werte mit entsprechenden Einschränkungen auf Benutzercodezugriffsebene, z. B. private in C#, sind für x:ClassModifier nicht relevant, da geschachtelte Klassenverweise in XAML nicht unterstützt werden und daher der TypeAttributes.NotPublic Modifizierer die gleiche Auswirkung hat.

Sicherheitshinweise

Die in x:ClassModifier deklarierte Zugriffsebene unterliegt weiterhin der Interpretation durch bestimmte Frameworks und deren Funktionen. WPF enthält Funktionen zum Laden und Instanziieren von Typen, bei denen x:ClassModifierinternalist, wenn von einer WPF-Ressource über einen Pack-URI-Verweis auf diese Klasse verwiesen wird. Als Folge dieses Falls und potenziell auch andere, wie sie von anderen Frameworks implementiert werden, verlassen Sie sich nicht ausschließlich auf x:ClassModifier, um alle möglichen Instanziierungsversuche zu blockieren.

Siehe auch