共用方式為


x:ClassModifier 指示詞

修改同時提供 x:Class 時的 XAML 編譯行為。 具體而言,不建立部分 class (具有Public存取級別 (預設值)),而是以 NotPublic 存取級別建立提供的 x:Class。 這個行為影響產生組件中的類別存取層級。

XAML 屬性使用方式

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

XAML 值

NotPublic

依據使用的程式碼後置程式設計語言而定,用於指定 TypeAttributes.PublicTypeAttributes.NotPublic 的確切傳遞字串都會有所不同。 請參閱「備註」。

相依性

在相同項目上也必須提供 x:Class,而且該項目必須是頁面的根項目。 如需詳細資訊,請參閱 [MS-XAML] 4.3.1.8 章 (英文)。

備註

.NET Framework XAML 服務使用方式中的 x:ClassModifier 值會隨程式設計語言而改變。 每個語言實作其 CodeDomProvider 的方式、它所傳回用來定義 TypeAttributes.PublicTypeAttributes.NotPublic 意義的型別轉換子,以及該語言是否區分大小寫,都會決定所要使用的字串。

  • 對於 C#,用於指定 TypeAttributes.NotPublic 的傳遞字串是 internal。

  • 對於 Microsoft Visual Basic .NET,用於指定 TypeAttributes.NotPublic 的傳遞字串是 Friend。

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

您也可以指定 TypeAttributes.Public (C# 中的 public、Visual Basic 中的 Public),但是指定 TypeAttributes.Public 並不常見,因為 TypeAttributes.Public 已經是預設的行為。

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

安全性提示

在 x:ClassModifier 中所宣告的存取層級,依然取決於特定架構的解譯及其功能。 如果是透過 pack URI 從 WPF 資源參考該類別,WPF 就包括載入和執行個體化其 x:ClassModifier 為 internal 之型別的能力。 因為此情況與其他框架實作之相似情況的緣故,請勿僅只依靠 x:ClassModifier 來封鎖所有可能的執行個體化嘗試。

請參閱

參考

x:Class 指示詞

x:FieldModifier 指示詞

概念

WPF 中的程式碼後置和 XAML

安全性 (WPF)

其他資源

從 WPF 移轉至 System.Xaml 的型別