Delen via


x:FieldModifier-richtlijn

Hiermee wijzigt u het compilatiegedrag van XAML, zodat velden voor benoemde objectverwijzingen worden gedefinieerd met TypeAttributes.Public toegang in plaats van het standaardgedrag van de TypeAttributes.NotPublic.

XAML-kenmerkgebruik

<object x:FieldModifier="Public".../>

XAML-waarden

Waarde Beschrijving
openbare De exacte tekenreeks die u doorgeeft om TypeAttributes.Public en TypeAttributes.NotPublic op te geven, is afhankelijk van de programmeertaal achter de code die wordt gebruikt. Zie opmerkingen.

Afhankelijkheden

Als een XAML-productie overal x:FieldModifier gebruikt, moet het hoofdelement van die XAML-productie een x:Class Directivedeclareren.

Opmerkingen

x:FieldModifier is niet relevant voor het declareren van het algemene toegangsniveau van een klasse of de leden ervan. Het is alleen relevant voor het gedrag van XAML-verwerking wanneer een bepaald XAML-object dat deel uitmaakt van een XAML-productie wordt verwerkt en een object wordt dat mogelijk toegankelijk is in de objectgrafiek van een toepassing. Standaard wordt de veldverwijzing voor een dergelijk object privé gehouden, waardoor gebruikers de objectgrafiek niet rechtstreeks kunnen wijzigen. In plaats daarvan wordt verwacht dat controlegebruikers de objectgrafiek wijzigen met behulp van standaardpatronen die zijn ingeschakeld door programmeermodellen, zoals door de indelingshoofdmap te verkrijgen, de onderliggende elementverzamelingen, de toegewezen openbare eigenschappen, enzovoort.

De waarde voor het kenmerk x:FieldModifier verschilt per programmeertaal en het doel ervan kan variëren in specifieke frameworks. 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.Publicpublic.

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

  • Voor C++/CLI bestaan er momenteel geen doelen voor XAML; daarom is de tekenreeks die moet worden doorgegeven, niet gedefinieerd.

U kunt ook TypeAttributes.NotPublic (internal in C# Friend in Visual Basic) opgeven, maar het opgeven van TypeAttributes.NotPublic is ongebruikelijk omdat NotPublic omdat het gedrag al de standaardinstelling is.

TypeAttributes.NotPublic is het standaardgedrag omdat deze niet vaak code buiten de assembly is die de XAML heeft gecompileerd, toegang nodig heeft tot een door XAML gemaakt element. WpF-beveiligingsarchitectuur samen met het compilatiegedrag van XAML declareert geen velden die elementexemplaren opslaan als openbaar, tenzij u de x:FieldModifier specifiek instelt om openbare toegang toe te staan.

x:FieldModifier is alleen relevant voor elementen met een x:Naamrichtlijn omdat die naam wordt gebruikt om naar het veld te verwijzen nadat het openbaar is.

Standaard is de gedeeltelijke klasse voor het hoofdelement openbaar; U kunt het echter niet openbaar maken met behulp van de x:ClassModifier Directive. De x:ClassModifier-richtlijn is ook van invloed op het toegangsniveau van het exemplaar van de klasse van het hoofdelement. U kunt zowel x:Name als x:FieldModifier op het hoofdelement plaatsen, maar dit maakt alleen een openbaar veldkopie van het hoofdelement, waarbij het toegangsniveau van de werkelijke basiselementklasse nog steeds wordt beheerd door x:ClassModifier Directive.

Zie ook