x:ClassModifier, directive

Modifie le comportement de compilation XAML lorsque x:Class est également fourni. Plus précisément, au lieu de créer une class partielle qui possède un niveau d'accès Public (valeur par défaut), la x:Class fournie est créée avec un niveau d'accès NotPublic. Cela 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

NotPublic

La chaîne exacte à passer pour spécifier TypeAttributes.Public et non TypeAttributes.NotPublic varie selon le langage de programmation code-behind utilisé. Voir Notes.

Dépendances

x:Class doit également être fourni dans le même élément, et cet élément doit être l'élément racine dans une page. Pour plus d'informations, consultez [MS-XAML] Section 4.3.1.8.

Notes

La valeur de x:ClassModifier dans l'utilisation des services XAML .NET Framework varie en fonction du langage de programmation. La chaîne à utiliser dépend de l'implémentation par chaque langage de son CodeDomProvider et des convertisseurs de type qu'il retourne pour définir les significations de TypeAttributes.Public et TypeAttributes.NotPublic, et varie également selon que ce langage respecte la casse ou pas.

  • 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, il n'existe aucune cible qui prenne 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 in Visual Basic); toutefois, TypeAttributes.Public est rarement spécifié car TypeAttributes.Public est déjà le comportement par défaut.

D'autres valeurs avec des restrictions du niveau d'accès du code utilisateur équivalentes, par exemple private en C#, ne sont pas pertinentes pour x:ClassModifier, parce que les références de classe imbriquées ne sont pas prises en charge dans XAML et par conséquent, le modificateur TypeAttributes.NotPublic a le même effet.

Notes de sécurité

Le niveau d'accès comme déclaré dans x:ClassModifier est soumis encore à interprétation par les infrastructures particulières et leurs fonctions. WPF inclut des fonctions pour charger et instancier des types où x:ClassModifier est internal, si cette classe est référencée par une ressource WPF via une référence URI à en-tête pack. En raison de ce cas et peut-être d'autres cas similaires implémentés par d'autres infrastructures, ne comptez pas exclusivement sur x:ClassModifier pour bloquer toutes les tentatives possibles d'instanciation.

Voir aussi

Référence

x:Class, directive

x:FieldModifier, directive

Concepts

Code-behind et XAML dans WPF

Sécurité (WPF)

Autres ressources

Types migrés de WPF vers System.Xaml