다음을 통해 공유


x:Code 내장 XAML 형식

XAML 프로덕션 내에서 코드를 배치할 수 있습니다. 이러한 코드는 XAML을 컴파일하는 모든 XAML 프로세서 구현에서 컴파일하거나 런타임의 해석과 같은 나중에 사용하기 위해 XAML 프로덕션에 남을 수 있습니다.

XAML 개체 요소 사용

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

발언

x:Code XAML 지시문 요소 내의 코드는 여전히 일반 XML 네임스페이스 및 제공된 XAML 네임스페이스 내에서 해석됩니다. 따라서 일반적으로 CDATA 세그먼트 내에서 x:Code 데 사용되는 코드를 묶을 필요가 있습니다.

XAML 프로덕션의 가능한 모든 배포 메커니즘에는 x:Code 허용되지 않습니다. 특정 프레임워크(예: WPF)에서 코드를 컴파일해야 합니다. 다른 프레임워크에서는 x:Code 사용이 일반적으로 허용되지 않을 수 있습니다.

관리되는 x:Code 콘텐츠를 허용하는 프레임워크의 경우 x:Code 콘텐츠에 사용할 올바른 언어 컴파일러는 애플리케이션을 컴파일하는 데 사용되는 포함 프로젝트의 설정 및 대상에 따라 결정됩니다.

WPF 사용 현황 정보

WPF에 대한 x:Code 내에 선언된 코드에는 몇 가지 주목할 만한 제한 사항이 있습니다.

  • x:Code 지시문 요소는 XAML 프로덕션의 루트 요소에 대한 직속 자식 요소여야 합니다.

  • x:Class 지시문 부모 루트 요소에 제공해야 합니다.

  • x:Code 내에 배치된 코드는 컴파일을 통해 해당 XAML 페이지에 대해 이미 생성되고 있는 부분 클래스의 범위 내에서 처리됩니다. 따라서 정의한 모든 코드는 해당 partial 클래스의 멤버 또는 변수여야 합니다.

  • 부분 클래스 내에 클래스를 중첩하는 것 외에는 추가 클래스를 정의할 수 없습니다(중첩은 허용되지만 중첩된 클래스는 XAML에서 참조할 수 없기 때문에 일반적이지는 않음). 기존 partial 클래스에 사용되는 네임스페이스 이외의 CLR 네임스페이스는 정의하거나 추가할 수 없습니다.

  • PARTIAL 클래스 CLR 네임스페이스 외부의 코드 엔터티에 대한 참조는 모두 정규화되어야 합니다. 선언되는 멤버가 재정의 가능한 부분 클래스 멤버에 대한 재정의인 경우 언어별 재정의 키워드를 사용하여 지정해야 합니다. x:Code 범위에서 선언된 멤버가 XAML에서 만든 partial 클래스의 멤버와 충돌하는 경우 컴파일러가 충돌을 보고하는 방식으로 XAML 파일은 컴파일하거나 로드할 수 없습니다.

참고 항목