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.NotPublic
internal
.Voor Microsoft Visual Basic .NET wordt de tekenreeks die moet worden doorgegeven om aan te geven TypeAttributes.NotPublic
Friend
.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
.NET Desktop feedback