Freigeben über


x:ClassModifier-Direktive

Ändert das XAML-Kompilierungsverhalten, wenn x:Class ebenfalls bereitgestellt wird. Statt eine partielle class mit einer Public-Zugriffsebene (Standardeinstellung) zu erstellen, wird die bereitgestellte x:Class spezifisch mit einer NotPublic-Zugriffsebene erstellt. Dieses Verhalten wirkt sich auf die Zugriffsebene für die Klasse in den generierten Assemblys aus.

Verwendung von XAML-Attributen

<object x:Class="namespace.classname" x:ClassModifier="NotPublic">
   ...
</object>

XAML-Werte

NotPublic

Welche Zeichenfolge genau zum Festlegen von TypeAttributes.Public im Vergleich zu TypeAttributes.NotPublic übergeben wird, ist unterschiedlich und hängt von der verwendeten Code-Behind-Programmiersprache ab. Siehe Hinweise.

Abhängigkeiten

x:Class muss ebenfalls für dasselbe Element bereitgestellt werden, und dieses Element muss das Stammelement auf einer Seite sein. Weitere Informationen finden Sie unter b[MS-XAML] Abschnitt 4.3.1.8.

Hinweise

Der Wert von x:ClassModifier in der .NET Framework-XAML-Diensteverwendung variiert je nach Programmiersprache. Die zu verwendende Zeichenfolge hängt davon ab, wie die jeweilige Sprache ihren CodeDomProvider implementiert, sowie von den Typkonvertern, die zum Definieren der Bedeutungen für TypeAttributes.Public und TypeAttributes.NotPublic zurückgegeben werden, und ob bei der Sprache die Groß- und Kleinschreibung beachtet werden muss.

  • In C# lautet die zum Festlegen von TypeAttributes.NotPublic zu übergebende Zeichenfolge internal.

  • In Microsoft Visual Basic .NET lautet die zum Festlegen von TypeAttributes.NotPublic zu übergebende Zeichenfolge Friend.

  • Für C++/CLI sind keine Ziele vorhanden, die das Kompilieren von XAML unterstützen. Daher ist der zu übergebende Wert nicht angegeben.

Sie können auch TypeAttributes.Public (public in C#, Public in Visual Basic) angeben; TypeAttributes.Public wird jedoch selten angegeben, da TypeAttributes.Public bereits das Standardverhalten darstellt.

Andere Werte mit entsprechenden Einschränkungen für Benutzercode-Zugriffsebenen, z. B. private in C#, sind für x:ClassModifier nicht relevant, da geschachtelte Klassenverweise in XAML nicht unterstützt werden. Daher hat der TypeAttributes.NotPublic-Modifizierer die gleichen Auswirkungen.

Sicherheitshinweise

Die Zugriffsebene, wie in x:ClassModifier deklariert, unterliegt immer noch der Interpretation durch bestimmte Frameworks und ihre Funktionen. WPF enthält Funktionen zum Laden und Instanziieren von Typen, wobei x:ClassModifier internal ist, wenn auf diese Klasse von einer WPF-Ressource durch einen Pack-URI-Verweis verwiesen wird. Als Folge dieses Falls und potenziell anderer ähnlicher Fälle verlassen Sie sich nicht ausschließlich auf x:ClassModifier, um alle möglichen Instanziierungsversuche zu blockieren.

Siehe auch

Referenz

x:Class-Direktive

x:FieldModifier-Direktive

Konzepte

Code-Behind und XAML in WPF

Sicherheit (WPF)

Weitere Ressourcen

Aus WPF zu System.Xaml migrierte Typen