x:ClassModifier 指示詞

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

XAML Attribute Usage

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

XAML 值

Description
NotPublic 要傳遞以指定 TypeAttributes.Public 與 的 TypeAttributes.NotPublic 確切字串會根據您使用的程式碼後置程式設計語言而有所不同。 請參閱<備註>。

相依性

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

備註

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

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

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

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

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

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

安全性注意事項

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

另請參閱