Udostępnij za pośrednictwem


x:FieldModifier, dyrektywa

Modyfikuje zachowanie kompilacji XAML, aby pola dla nazwanych odwołań do obiektów zostały zdefiniowane przy użyciu dostępu TypeAttributes.Public zamiast zachowania domyślnego TypeAttributes.NotPublic.

Użycie atrybutu XAML

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

Wartości XAML

Wartość Opis
publicznej Dokładny przekazany ciąg określający TypeAttributes.Public a TypeAttributes.NotPublic różni 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ć x:Class Directive.

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, a 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 w celu wyznaczenia TypeAttributes.Public jest public.

  • W przypadku platformy .NET języka Microsoft Visual Basic ciąg do przekazania w celu wyznaczenia TypeAttributes.Public jest 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#, Friend w języku Visual Basic), ale określenie TypeAttributes.NotPublic jest nietypowe, ponieważ NotPublic, ponieważ 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 specjalnie x:FieldModifier zezwalać 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 również wpływa na poziom dostępu wystąpienia klasy elementu głównego. Można umieścić zarówno x:Name, jak i x:FieldModifier na elemecie głównym, ale powoduje to tylko publiczną kopię pola elementu głównego, przy czym poziom dostępu do klasy głównej jest nadal kontrolowany przez x:Dyrektywa ClassModifier.

Zobacz też