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 partiel class
ayant un Public
niveau d’accès (valeur par défaut), le fourni x:Class
est créé avec un NotPublic
niveau d’accès. Ce comportement affecte le niveau d’accès de la classe dans les assemblys générés.
Utilisation d'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 et TypeAttributes.NotPublic varie selon le langage de programmation code-behind que vous utilisez. Consultez la section Notes. |
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 4.3.1.8.
Remarques
La valeur de dans l’utilisation des x:ClassModifier
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’elle retourne pour définir les significations pour TypeAttributes.Public et TypeAttributes.NotPublic , et si cette langue respecte la casse.
Pour C#, la chaîne à passer à Designate TypeAttributes.NotPublic est
internal
.pour Microsoft Visual Basic .net, la chaîne à transmettre à designate TypeAttributes.NotPublic est
Friend
.Pour C++/CLI, il n’existe aucune cible prenant 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
dans Visual Basic); toutefois, la spécification TypeAttributes.Public de 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 de code utilisateur équivalentes, private
comme en C#, ne sont pas pertinentes pour x:ClassModifier
, car les références de classe imbriquée ne sont pas prises en charge en XAML, et par conséquent, le TypeAttributes.NotPublic modificateur a le même effet.
Remarques relatives à la sécurité
Le niveau d’accès tel qu’il est déclaré dans x:ClassModifier
est toujours soumis à une interprétation par des frameworks particuliers et leurs fonctionnalités. WPF offre des fonctionnalités permettant de charger et d’instancier des types où x:ClassModifier
est internal
, si cette classe est référencée à partir d’une ressource WPF par le biais d’une référence URI à en-tête pack. À la suite de ce cas et, éventuellement, d’autres personnes comme celles implémentées par d’autres infrastructures, ne comptez pas exclusivement sur x:ClassModifier
pour bloquer toutes les tentatives d’instanciation possibles.