Bagikan melalui


x:Arahan ClassModifier

Memodifikasi perilaku kompilasi XAML ketika x:Class juga disediakan. Secara khusus, alih-alih membuat parsial class yang memiliki Public tingkat akses (default), yang disediakan x:Class dibuat dengan NotPublic tingkat akses. Perilaku ini memengaruhi tingkat akses untuk kelas dalam rakitan yang dihasilkan.

Penggunaan Atribut XAML

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

Nilai XAML

Nilai Deskripsi
NotPublic String yang tepat untuk diteruskan untuk menentukan TypeAttributes.Public versus TypeAttributes.NotPublic bervariasi, tergantung pada bahasa pemrograman code-behind yang Anda gunakan. Lihat Keterangan.

Dependensi

x:Class juga harus disediakan pada elemen yang sama, dan elemen tersebut harus menjadi elemen akar dalam halaman. Untuk informasi selengkapnya, lihat [MS-XAML] Bagian 6.3.1.8.

Keterangan

Nilai x:ClassModifier dalam penggunaan Layanan .NET XAML bervariasi menurut bahasa pemrograman. String yang akan digunakan tergantung pada bagaimana setiap bahasa mengimplementasikannya CodeDomProvider dan pengonversi jenis yang dikembalikannya untuk menentukan arti untuk TypeAttributes.Public dan TypeAttributes.NotPublic, dan apakah bahasa tersebut peka huruf besar/kecil.

  • Untuk C#, string yang akan diteruskan ke yang ditunjuk TypeAttributes.NotPublic adalah internal.

  • Untuk Microsoft Visual Basic .NET, string yang akan diteruskan ke yang ditunjuk TypeAttributes.NotPublic adalah Friend.

  • Untuk C++/CLI, tidak ada target yang mendukung kompilasi XAML; oleh karena itu, nilai yang akan diteruskan tidak ditentukan.

Anda juga dapat menentukan TypeAttributes.Public (public dalam C#, Public di Visual Basic); namun, menentukan TypeAttributes.Public jarang dilakukan karena TypeAttributes.Public sudah menjadi perilaku default.

Nilai lain dengan pembatasan tingkat akses kode pengguna yang setara, seperti private di C#, tidak relevan karena x:ClassModifier referensi kelas berlapis tidak didukung di XAML, dan oleh karena itu, pengubah TypeAttributes.NotPublic memiliki efek yang sama.

Catatan Keamanan

Tingkat akses seperti yang dinyatakan dalam x:ClassModifier masih tunduk pada interpretasi oleh kerangka kerja tertentu dan kemampuannya. WPF mencakup kemampuan untuk memuat dan membuat instans jenis di mana x:ClassModifier adalah internal, jika kelas tersebut dirujuk dari sumber daya WPF melalui referensi URI paket. Sebagai konsekuensi dari kasus ini dan berpotensi orang lain seperti yang diimplementasikan oleh kerangka kerja lain, jangan mengandalkan secara x:ClassModifier eksklusif untuk memblokir semua kemungkinan upaya instansiasi.

Baca juga