Udostępnij za pośrednictwem


x:Code, wewnętrzny typ XAML

Umożliwia umieszczanie kodu w środowisku produkcyjnym XAML. Taki kod może być kompilowany przez dowolną implementację procesora XAML, która kompiluje kod XAML, lub pozostawiony w środowisku produkcyjnym XAML w celu późniejszego użycia, takiego jak interpretacja przez środowisko uruchomieniowe.

Użycie elementu obiektu XAML

<x:Code>
   // code instructions, usually enclosed by CDATA...
</x:Code>

Uwagi

Kod w ramach elementu dyrektywy XAML x:Code jest nadal interpretowany w obrębie ogólnej przestrzeni nazw XML i udostępnionych przestrzeni nazw XAML. W związku z tym zwykle konieczne jest dołączenie kodu używanego do x:Code wewnątrz segmentu CDATA.

x:Code nie jest dozwolone dla wszystkich możliwych mechanizmów wdrażania środowiska produkcyjnego XAML. W określonych strukturach (na przykład WPF) należy skompilować kod. W innych strukturach użycie x:Code może być ogólnie niedozwolone.

W przypadku struktur, które zezwalają na zarządzaną zawartość x:Code, kompilator języka używany do x:Code zawartości jest określany przez ustawienia i obiekty docelowe zawierającego projekt używany do kompilowania aplikacji.

Uwagi dotyczące użycia platformy WPF

Kod zadeklarowany w x:Code dla WPF ma kilka istotnych ograniczeń:

  • Element dyrektywy x:Code musi być bezpośrednim elementem podrzędnym elementu głównego produkcji XAML.

  • x:Klasa Dyrektywy musi być podana w nadrzędnym elemecie głównym.

  • Kod umieszczony w x:Code będzie traktowany przez kompilację w zakresie klasy częściowej, która jest już tworzona dla tej strony XAML. W związku z tym cały zdefiniowany kod musi być elementami członkowskimi lub zmiennymi tej klasy częściowej.

  • Nie można zdefiniować dodatkowych klas, poza zagnieżdżaniem klasy wewnątrz klasy częściowej (zagnieżdżanie jest dozwolone, ale nie jest typowe, ponieważ nie można odwoływać się do klas zagnieżdżonych w języku XAML). Przestrzenie nazw CLR inne niż przestrzeń nazw używana dla istniejącej klasy częściowej nie mogą być zdefiniowane ani dodane do.

  • Odwołania do jednostek kodu spoza przestrzeni nazw CLR klasy częściowej muszą być w pełni kwalifikowane. Jeśli zadeklarowane elementy członkowskie są zastępowane do częściowych składowych, które można zastąpić klasą, należy to określić za pomocą słowa kluczowego zastąpienia specyficznego dla języka. Jeśli elementy członkowskie zadeklarowane w zakresie x:Code powodują konflikt z elementami członkowskimi klasy częściowej utworzonej z kodu XAML, w taki sposób, że kompilator zgłasza konflikt, plik XAML nie może skompilować ani załadować.

Zobacz też