Delen via


x:ClassModifier Directive

Wijzigt het compilatiegedrag van XAML wanneer x:Class ook wordt geleverd. In plaats van een gedeeltelijke class te maken met een Public toegangsniveau (de standaardinstelling), wordt de opgegeven x:Class gemaakt met een NotPublic toegangsniveau. Dit gedrag is van invloed op het toegangsniveau voor de klasse in de gegenereerde assembly's.

XAML-kenmerkgebruik

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

XAML-waarden

Waarde Beschrijving
NotPublic De exacte tekenreeks die moet worden doorgegeven om TypeAttributes.Public op te geven versus TypeAttributes.NotPublic varieert, afhankelijk van de programmeertaal achter de code die u gebruikt. Zie opmerkingen.

Afhankelijkheden

x:Class moet ook worden opgegeven op hetzelfde element en dat element moet het hoofdelement op een pagina zijn. Zie [MS-XAML] Sectie 6.3.1.8voor meer informatie.

Opmerkingen

De waarde van x:ClassModifier in .NET XAML Services-gebruik verschilt per programmeertaal. De tekenreeks die moet worden gebruikt, is afhankelijk van de manier waarop elke taal de CodeDomProvider implementeert en de typeconversieprogramma's die worden geretourneerd om de betekenissen voor TypeAttributes.Public en TypeAttributes.NotPublicte definiëren en of die taal hoofdlettergevoelig is.

  • Voor C# wordt de tekenreeks die moet worden doorgegeven om aan te wijzen TypeAttributes.NotPublicinternal.

  • Voor Microsoft Visual Basic .NET wordt de tekenreeks die moet worden doorgegeven om aan te geven TypeAttributes.NotPublicFriend.

  • Voor C++/CLI bestaan er geen doelen die ondersteuning bieden voor het compileren van XAML; daarom is de waarde die moet worden doorgegeven niet opgegeven.

U kunt ook TypeAttributes.Public (public opgeven in C#, Public in Visual Basic); het opgeven van TypeAttributes.Public wordt echter niet vaak uitgevoerd omdat TypeAttributes.Public al het standaardgedrag is.

Andere waarden met gelijkwaardige beperkingen op gebruikerscodetoegangsniveau, zoals private in C#, zijn niet relevant voor x:ClassModifier omdat geneste klasseverwijzingen niet worden ondersteund in XAML en daarom heeft de TypeAttributes.NotPublic wijziging hetzelfde effect.

Beveiligingsnotities

Het toegangsniveau zoals gedeclareerd in x:ClassModifier is nog steeds onderhevig aan interpretatie door bepaalde frameworks en hun mogelijkheden. WPF bevat mogelijkheden voor het laden en instantiëren van typen waarbij x:ClassModifier is internal, als naar die klasse wordt verwezen vanuit een WPF-resource via een pakket-URI-verwijzing. Als gevolg van deze zaak en mogelijk anderen, zoals deze worden geïmplementeerd door andere frameworks, vertrouwt u niet uitsluitend op x:ClassModifier om alle mogelijke instantiatiepogingen te blokkeren.

Zie ook