共用方式為


x:ClassModifier 指示詞

同時提供 x:Class 時,修改 XAML 編譯行為。 具體來說,提供的 x:Class 會使用 NotPublic 存取層級建立提供的 x:Class,而不是建立具有 Public 存取層級的部分 class。 此行為會影響所產生元件中 類別的存取層級。

XAML 屬性使用方式

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

XAML 值

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

依賴

x:Class 也必須在相同的元素上提供,而且該項目必須是頁面上的根元素。 如需詳細資訊,請參閱 [MS-XAML] 第 6.3.1.8 節

言論

.NET XAML 服務使用方式中 x:ClassModifier 的值會因程式設計語言而異。 要使用的字串取決於每個語言如何實作其 CodeDomProvider,以及它傳回的類型轉換器來定義 TypeAttributes.PublicTypeAttributes.NotPublic的意義,以及該語言是否區分大小寫。

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

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

  • 針對 C++/CLI,沒有支援編譯 XAML 的目標;因此,要傳遞的值未指定。

您也可以在 C# 中指定 TypeAttributes.Publicpublic,在 Visual Basic 中指定 Public):不過,因為 TypeAttributes.Public 已經是預設行為,因此不常指定 TypeAttributes.Public

其他具有對等使用者程式代碼存取層級限制的值,例如 C# 中的 private,與 x:ClassModifier 無關,因為 XAML 不支援巢狀類別參考,因此 TypeAttributes.NotPublic 修飾詞的效果相同。

安全性注意事項

x:ClassModifier 中所宣告的存取層級仍受限於特定架構及其功能的解釋。 WPF 包含載入和具現化 x:ClassModifierinternal的功能,如果透過套件 URI 參考從 WPF 資源參考該類別。 由於此案例和可能由其他架構實作的其他人,請勿完全依賴 x:ClassModifier 來封鎖所有可能的具現化嘗試。

另請參閱