x :ClassModifier, directive
Modifie le comportement de compilation XAML lorsque x:Class
est également fourni. Plus précisément, au lieu de créer un class
partiel qui a un niveau d’accès Public
(la valeur par défaut), le x:Class
fourni est créé avec un niveau d’accès NotPublic
. Ce comportement affecte le niveau d’accès de la classe dans les assemblys générés.
Utilisation des attributs XAML
<object x:Class="namespace.classname" x:ClassModifier="NotPublic">
...
</object>
Valeurs XAML
Valeur | Description |
---|---|
NotPublic | La chaîne exacte à passer pour spécifier TypeAttributes.Public par rapport à TypeAttributes.NotPublic varie en fonction du langage de programmation code-behind que vous utilisez. Voir les remarques. |
Dépendances
x :Class doit également être fourni sur le même élément, et cet élément doit être l’élément racine d’une page. Pour plus d’informations, consultez [MS-XAML] Section 6.3.1.8.
Remarques
La valeur de x:ClassModifier
dans l’utilisation des services XAML .NET varie en fonction du langage de programmation. La chaîne à utiliser dépend de la façon dont chaque langage implémente son CodeDomProvider et les convertisseurs de type qu’il retourne pour définir les significations de TypeAttributes.Public et de TypeAttributes.NotPublic, et si cette langue respecte la casse.
Pour C#, la chaîne à passer pour désigner TypeAttributes.NotPublic est
internal
.Pour Microsoft Visual Basic .NET, la chaîne à passer pour désigner TypeAttributes.NotPublic est
Friend
.Pour C++/CLI, aucune cible n’existe qui prend en charge la compilation xaml ; par conséquent, la valeur à passer n’est pas spécifiée.
Vous pouvez également spécifier TypeAttributes.Public (public
en C#, Public
en Visual Basic) ; Toutefois, la spécification de TypeAttributes.Public est rarement effectuée, car TypeAttributes.Public est déjà le comportement par défaut.
D’autres valeurs avec des restrictions de niveau d’accès au code utilisateur équivalentes, telles que private
en C#, ne sont pas pertinentes pour x:ClassModifier
, car les références de classe imbriquées ne sont pas prises en charge en XAML, et par conséquent, le modificateur TypeAttributes.NotPublic a le même effet.
Notes de sécurité
Le niveau d’accès tel qu’il est déclaré dans x:ClassModifier
est toujours soumis à une interprétation par des infrastructures particulières et leurs fonctionnalités. WPF inclut des fonctionnalités de chargement et d’instanciation de types où x:ClassModifier
est internal
, si cette classe est référencée à partir d’une ressource WPF via une référence d’URI de pack. En conséquence de ce cas et potentiellement d’autres comme celui-ci implémenté par d’autres frameworks, ne s’appuient pas exclusivement sur x:ClassModifier
pour bloquer toutes les tentatives d’instanciation possibles.
Voir aussi
- de directive x :Class
- Code-Behind et XAML dans wpF
- directive x :FieldModifier
- sécurité
(WPF) - types migrés de WPF vers system.Xaml
.NET Desktop feedback