다음을 통해 공유


x:ClassModifier 지시문

x:Class 제공될 때 XAML 컴파일 동작을 수정합니다. 특히 Public 액세스 수준(기본값)이 있는 부분 class 만드는 대신 제공된 x:ClassNotPublic 액세스 수준으로 만들어집니다. 이 동작은 생성된 어셈블리의 클래스에 대한 액세스 수준에 영향을 줍니다.

XAML 특성 사용

<object x:Class="namespace.classname" x:ClassModifier="NotPublic">
   ...
</object>

XAML 값

묘사
notPublic TypeAttributes.Public 지정하기 위해 전달할 정확한 문자열과 TypeAttributes.NotPublic 지정하는 문자열은 사용하는 코드 숨김 프로그래밍 언어에 따라 달라집니다. 비고를 참조하세요.

종속성

x:Class 동일한 요소에도 제공되어야 하며 해당 요소는 페이지의 루트 요소여야 합니다. 자세한 내용은 [MS-XAML] 섹션 6.3.1.8참조하세요.

발언

.NET XAML Services 사용량의 x:ClassModifier 값은 프로그래밍 언어에 따라 다릅니다. 사용할 문자열은 각 언어가 해당 CodeDomProvider 구현하는 방법과 TypeAttributes.PublicTypeAttributes.NotPublic의미를 정의하기 위해 반환되는 형식 변환기와 해당 언어가 대/소문자를 구분하는지 여부에 따라 달라집니다.

  • C#의 경우 TypeAttributes.NotPublic 지정하기 위해 전달할 문자열은 internal.

  • Microsoft Visual Basic .NET의 경우 TypeAttributes.NotPublic 지정하기 위해 전달할 문자열은 Friend.

  • C++/CLI의 경우 XAML 컴파일을 지원하는 대상이 없습니다. 따라서 전달할 값은 지정되지 않습니다.

TypeAttributes.Public(C#에서는public, Visual Basic에서는 Public)를 지정할 수도 있습니다. 그러나 TypeAttributes.Public 이미 기본 동작이므로 TypeAttributes.Public 지정하는 작업은 자주 수행되지 않습니다.

C#의 private 같은 동일한 사용자 코드 액세스 수준 제한이 있는 다른 값은 중첩 클래스 참조가 XAML에서 지원되지 않으므로 TypeAttributes.NotPublic 한정자가 동일한 효과를 가지므로 x:ClassModifier 관련이 없습니다.

보안 정보

x:ClassModifier 선언된 액세스 수준은 여전히 특정 프레임워크 및 해당 기능에 의해 해석될 수 있습니다. WPF에는 해당 클래스가 팩 URI 참조를 통해 WPF 리소스에서 참조되는 경우 x:ClassModifierinternal형식을 로드하고 인스턴스화하는 기능이 포함되어 있습니다. 이 경우 및 다른 프레임워크에서 구현하는 것과 같은 잠재적으로 다른 사례의 결과로 가능한 모든 인스턴스화 시도를 차단하기 위해 x:ClassModifier 단독으로 의존하지 마세요.

참고 항목