x:FieldModifier 属性

更新:2007 年 11 月

修改 XAML 编译行为,例如使用 NonPublic 访问而不是 Public 默认行为定义已命名对象引用的字段。

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。

x:FieldModifier 仅与具有 x:Name 属性 的元素相关,因为一旦该字段成为公共字段,该名称将用于引用该字段。

默认情况下,根元素的分部类是公共的,但可以使用 x:ClassModifier 属性 使其成为非公共类。x:ClassModifier 属性 也影响根元素类的实例的访问级别。可以在根元素上同时放置 x:Name 和 x:FieldModifier,但这仅会使公共字段成为根元素的副本,真正的根元素类访问级别仍受 x:ClassModifier 属性 控制。

请参见

概念

XAML 和自定义类

代码隐藏和 XAML

生成 WPF 应用程序 (WPF)

参考

x:Name 属性

x:ClassModifier 属性