Udostępnij za pośrednictwem


x:FieldModifier — dyrektywa

Modyfikuje zachowanie kompilacji XAML, tak aby pola dla nazwanych odwołań do obiektów zostały zdefiniowane z dostępem TypeAttributes.Public zamiast zachowania domyślnego TypeAttributes.NotPublic .

Użycie atrybutu języka XAML

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

Wartości XAML

Wartość Opis
Public Dokładny ciąg przekazywany do określania TypeAttributes.Public i TypeAttributes.NotPublic zmienia się w zależności od używanego języka programowania kodu. Zobacz uwagi.

Zależności

Jeśli produkcja XAML używa x:FieldModifier w dowolnym miejscu, element główny tej produkcji XAML musi zadeklarować dyrektywę x:Class.

Uwagi

x:FieldModifier nie jest istotne dla deklarowania ogólnego poziomu dostępu klasy lub jej składowych. Ma to zastosowanie tylko w przypadku zachowania przetwarzania XAML, gdy określony obiekt XAML, który jest częścią produkcji XAML, jest przetwarzany i staje się obiektem, który jest potencjalnie dostępny w grafie obiektu aplikacji. Domyślnie odwołanie do pola dla takiego obiektu jest przechowywane jako prywatne, co uniemożliwia użytkownikom kontrolowanie bezpośredniego modyfikowania grafu obiektów. Zamiast tego oczekuje się, że odbiorcy sterowania zmodyfikują graf obiektów przy użyciu standardowych wzorców, które są włączone przez modele programowania, takie jak uzyskanie katalogu głównego układu, kolekcji elementów podrzędnych, dedykowanych właściwości publicznych itd.

Wartość atrybutu x:FieldModifier różni się w zależności od języka programowania, a jego przeznaczenie może się różnić w określonych strukturach. Ciąg do użycia zależy od tego, jak każdy język implementuje jego CodeDomProvider i konwertery typów, które zwraca, aby zdefiniować znaczenie dla TypeAttributes.Public i TypeAttributes.NotPublic, i czy ten język jest uwzględniany wielkość liter.

  • W przypadku języka C#ciąg do przekazania do wyznaczenia TypeAttributes.Public to public.

  • W przypadku platformy .NET programu Microsoft Visual Basic ciąg do przekazania do wyznaczenia TypeAttributes.Public to Public.

  • W przypadku języka C++/CLI obecnie nie istnieją żadne elementy docelowe dla języka XAML; dlatego ciąg do przekazania jest niezdefiniowany.

Można również określić TypeAttributes.NotPublic (internal w języku C#, w Visual Basic), ale określenie TypeAttributes.NotPublic jest nietypowe, Friend ponieważ NotPublic zachowanie jest już domyślne.

TypeAttributes.NotPublic jest zachowaniem domyślnym, ponieważ rzadko występuje ten kod poza zestawem, który skompilował kod XAML, wymaga dostępu do elementu utworzonego w języku XAML. Architektura zabezpieczeń WPF wraz z zachowaniem kompilacji XAML nie będzie deklarować pól, które przechowują wystąpienia elementów jako publiczne, chyba że określono w szczególności ustawienie x:FieldModifier , aby zezwolić na dostęp publiczny.

x:FieldModifier dotyczy tylko elementów z dyrektywą x:Name , ponieważ ta nazwa jest używana do odwołowania się do pola po jej upublicznieniu.

Domyślnie klasa częściowa elementu głównego jest publiczna; można go jednak niepublikować przy użyciu dyrektywy x:ClassModifier. Dyrektywa x:ClassModifier wpływa również na poziom dostępu wystąpienia klasy elementu głównego. Można umieścić zarówno element główny, x:Name jak i x:FieldModifier na elemecie głównym, ale powoduje to tylko publiczną kopię pola elementu głównego, przy czym prawdziwy poziom dostępu klasy głównej jest nadal kontrolowany przez dyrektywę x:ClassModifier.

Zobacz też