Share via


x:FieldModifier 특성

업데이트: 2007년 11월

명명된 개체 참조에 대한 필드를 기본 동작인 Public이 아니라 NonPublic 액세스를 사용하여 정의하도록 XAML 컴파일 동작을 수정합니다.

XAML 특성 사용

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

XAML 값

Public

Public 또는 NonPublic을 지정하기 위해 전달할 정확한 문자열은 사용하는 코드 숨김 프로그래밍 언어에 따라 다릅니다. 설명 부분을 참조하십시오.

종속성

동일한 요소에 x:Name도 제공해야 합니다.

설명

x:FieldModifier 특성 값은 프로그래밍 언어에 따라 다릅니다. 사용할 문자열은 각 언어에서 해당 CodeDomProvider를 구현하는 방법, TypeAttributes.PublicTypeAttributes.NonPublic의 의미를 정의하기 위해 언어에서 반환하는 형식 변환기 및 해당 언어가 대/소문자를 구분하는지 여부에 따라 달라집니다.

  • C#의 경우 Public을 지정하기 위해 전달할 문자열은 public입니다.

  • Microsoft Visual Basic .NET의 경우 Public을 지정하기 위해 전달할 문자열은 Public입니다.

  • C++/CLI의 경우 C++/CLI 대상이 현재 XAML 컴파일을 지원하지 않습니다.

NonPublic(C#의 경우 internal, Microsoft Visual Basic .NET의 경우 Friend)도 지정할 수 있지만 NonPublic 동작은 이미 기본값이므로 지정하지 않는 것이 일반적입니다.

NonPublic이 기본값으로 지정되는 이유는 XAML을 컴파일한 어셈블리 외부의 코드에서 XAML로 생성된 요소를 액세스할 필요가 없기 때문입니다. WPF 보안 아키텍처에서는 사용자가 구체적으로 x:FieldModifier를 설정한 경우가 아니면 요소 인스턴스가 저장되는 필드를 public으로 만들지 않습니다.

x:FieldModifier는 x:Name 특성이 있는 요소와만 관련되는데, 이 이름을 사용하여 public 필드를 참조하기 때문입니다.

루트 요소의 partial 클래스는 기본적으로 public이지만 x:ClassModifier 특성을 사용하여 nonpublic으로 만들 수 있습니다. x:ClassModifier 특성은 루트 요소 클래스 인스턴스의 액세스 수준에도 영향을 줍니다. 루트 요소에 x:Name 및 x:FieldModifier를 모두 지정할 수 있지만 이 경우 루트 요소의 public 필드 복사본이 만들어질 뿐이며 실제 루트 요소 클래스의 액세스 수준은 여전히 x:ClassModifier 특성을 통해 제어됩니다.

참고 항목

개념

XAML 및 사용자 지정 클래스

코드 숨김 및 XAML

WPF 응용 프로그램 만들기(WPF)

참조

x:Name 특성

x:ClassModifier 특성