Partager via


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