x:ClassModifier 지시문
x:Class
제공될 때 XAML 컴파일 동작을 수정합니다. 특히 Public
액세스 수준(기본값)이 있는 부분 class
만드는 대신 제공된 x:Class
NotPublic
액세스 수준으로 만들어집니다. 이 동작은 생성된 어셈블리의 클래스에 대한 액세스 수준에 영향을 줍니다.
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.Public 및 TypeAttributes.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:ClassModifier
internal
형식을 로드하고 인스턴스화하는 기능이 포함되어 있습니다. 이 경우 및 다른 프레임워크에서 구현하는 것과 같은 잠재적으로 다른 사례의 결과로 가능한 모든 인스턴스화 시도를 차단하기 위해 x:ClassModifier
단독으로 의존하지 마세요.
참고 항목
- x:Class 지시문
- WPF
Code-Behind 및 XAML - x:FieldModifier 지시문
- WPF(보안)
- WPF에서 System.Xaml로 마이그레이션된 형식
.NET Desktop feedback