x:FieldModifier-Anweisung

Ändert das XAML-Kompilierungsverhalten so, dass Felder für benannte Objektverweise mit TypeAttributes.Public-Zugriff anstelle des TypeAttributes.NotPublic-Standardverhaltens definiert werden.

Verwendung von XAML-Attributen

<object x:FieldModifier="Public".../>

XAML-Werte

Wert BESCHREIBUNG
Öffentlich Die genaue Zeichenfolge, die Sie zur Angabe von TypeAttributes.Public bzw. TypeAttributes.NotPublic übergeben, variiert je nach der verwendeten CodeBehind-Programmiersprache. Siehe Hinweise.

Abhängigkeiten

Wenn eine XAML-Produktion irgendwo x:FieldModifier verwendet, muss das Stammelement dieser XAML-Produktion eine x:Class-Anweisung deklarieren.

Hinweise

x:FieldModifier ist nicht für die Deklarierung der allgemeinen Zugriffsstufe einer Klasse oder ihrer Member relevant. Es ist nur für das XAML-Verarbeitungsverhalten relevant, wenn ein bestimmtes XAML-Objekt, das Teil einer XAML-Produktion ist, verarbeitet wird und zu einem Objekt wird, auf das im Objektgraphen einer Anwendung potenziell zugegriffen werden kann. Standardmäßig wird der Feldverweis für ein solches Objekt als privat deklariert, wodurch verhindert wird, dass Steuerelementconsumer den Objektgraphen direkt ändern können. Stattdessen wird von Steuerelementconsumern erwartet, dass sie den Objektgraphen unter Verwendung von Standardmustern ändern, die von Programmiermodellen ermöglicht werden, z. B. durch Abrufen des Layoutstamms, der untergeordneten Elementsammlungen, der dedizierten öffentlichen Eigenschaften usw.

Der Wert für das Attribut x:FieldModifier variiert je nach Programmiersprache, und sein Zweck kann in bestimmten Frameworks unterschiedlich sein. Welche Zeichenfolge zu verwenden ist, hängt davon ab, wie jede Sprache ihren CodeDomProvider und die Typkonverter implementiert, die sie zurückgibt, um die Bedeutungen für TypeAttributes.Public und TypeAttributes.NotPublic zu definieren, und ob diese Sprache zwischen Groß- und Kleinschreibung unterscheidet.

  • Für C# ist die Zeichenfolge, die zur Bezeichnung von TypeAttributes.Public übergeben werden muss, public.

  • Bei Microsoft Visual Basic .NET ist die Zeichenfolge, die zur Bezeichnung von TypeAttributes.Public übergeben wird, Public.

  • Für C++ bzw. die CLI gibt es derzeit keine Ziele für XAML. Daher ist die zu übergebende Zeichenfolge nicht definiert.

Sie können auch TypeAttributes.NotPublic (internal in C#, Friend in Visual Basic) angeben, aber die Angabe von TypeAttributes.NotPublic ist ungewöhnlich, da NotPublic als Verhalten bereits die Standardeinstellung ist.

TypeAttributes.NotPublic ist das Standardverhalten, da es selten vorkommt, dass Code außerhalb der Assembly, die das XAML kompiliert hat, Zugriff auf ein von XAML erstelltes Element benötigt. Die WPF-Sicherheitsarchitektur in Verbindung mit dem XAML-Kompilierungsverhalten deklariert Felder, die Elementinstanzen speichern, nicht als öffentlich, es sei denn, Sie legen ausdrücklich fest, dass x:FieldModifier öffentlichen Zugriff erlaubt.

x:FieldModifier ist nur für Elemente mit einer x:Name-Anweisung relevant, da dieser Name verwendet wird, um auf das Feld zu verweisen, nachdem es öffentlich ist.

Standardmäßig ist die Teilklasse für das Stammelement öffentlich. Sie können sie jedoch mit der x:ClassModifier-Anweisung nicht-öffentlich machen. Die x:ClassModifier-Anweisung wirkt sich auch auf die Zugriffsebene der Instanz der Stammelementklasse aus. Sie können sowohl x:Name als auch x:FieldModifier auf das Stammelement festlegen, aber dies erstellt nur eine öffentliche Feldkopie des Stammelements, wobei die Zugriffsebene der echten Klasse des Stammelements weiterhin durch die x:ClassModifier-Anweisung gesteuert wird.

Weitere Informationen