共用方式為


x:FieldModifier 指示詞

修改 XAML 編譯行為,讓具名物件參考的欄位定義 TypeAttributes.Public 存取,而不是 TypeAttributes.NotPublic 預設行為。

XAML 屬性使用方式

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

XAML 值

價值 描述
公用 您傳遞以指定 TypeAttributes.PublicTypeAttributes.NotPublic 的確切字串會根據所使用的程式代碼後置程式設計語言而有所不同。 請參閱。

依賴

如果 XAML 生產環境在任何位置使用 x:FieldModifier,則 XAML 生產環境的根元素必須宣告 x:Class 指示詞

言論

x:FieldModifier 與宣告類別或其成員的一般存取層級無關。 只有在處理屬於 XAML 生產環境的特定 XAML 物件時,才與 XAML 處理行為相關,並成為應用程式物件圖形中可能可存取的物件。 根據預設,這類物件的欄位參考會保持私用,這可防止控件取用者直接修改物件圖形。 相反地,控件取用者應該使用程序設計模型所啟用的標準模式來修改物件圖形,例如取得版面配置根目錄、子專案集合、專用公用屬性等等。

x:FieldModifier 屬性的值會因程式設計語言而有所不同,其用途可能會因特定架構而異。 要使用的字串取決於每個語言如何實作其 CodeDomProvider,以及它傳回的類型轉換器來定義 TypeAttributes.PublicTypeAttributes.NotPublic的意義,以及該語言是否區分大小寫。

  • 針對 C#,要傳遞至指定 TypeAttributes.Public 的字串會 public

  • 對於 Microsoft Visual Basic .NET,要傳遞以指定 TypeAttributes.Public 的字串會 Public

  • 針對 C++/CLI,目前沒有 XAML 的目標;因此,要傳遞的字串未定義。

您也可以在 C# 中指定 TypeAttributes.NotPublicinternal,在 Visual Basic 中 Friend),但指定 TypeAttributes.NotPublic 是不尋常的,因為 NotPublic 行為已經是預設值。

TypeAttributes.NotPublic 是預設行為,因為編譯 XAML 的元件外部的程式代碼不常需要存取 XAML 建立的專案。 WPF 安全性架構與 XAML 編譯行為不會宣告將專案實例儲存為公用的欄位,除非您特別設定 x:FieldModifier 以允許公用存取。

x:FieldModifier 只與具有 x:Name 指示詞 的專案相關,因為該名稱是用來在字段公開之後參考字段。

根據預設,根元素的部分類別是公用的;不過,您可以使用 x:ClassModifier 指示詞,使其非公用。 x:ClassModifier 指示詞 也會影響根元素類別實例的存取層級。 您可以將 x:Namex:FieldModifier 放在根元素上,但這只會建立根元素的公用欄位複本,而真正的根元素類別存取層級仍由 x:ClassModifier 指示詞控制

另請參閱