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.

Voir aussi