Referensi file konfigurasi runtime direktif (rd.xml)
File arahan runtime (.rd.xml) adalah file konfigurasi XML yang menentukan apakah elemen program yang ditunjuk tersedia untuk refleksi. Untuk informasi tentang cara dan tempat menambahkan arahan runtime ke proyek Anda, dan cara mengenalinya, lihat Pemecah masalah MissingMetadataException.
Berikut adalah contoh file arahan runtime:
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Namespace Name="Contoso.Cloud.AppServices" Serialize="Required Public" />
<Namespace Name="ContosoClient.ViewModels" Serialize="Required Public" />
<Namespace Name="ContosoClient.DataModel" Serialize="Required Public" />
<Namespace Name="Contoso.Reader.UtilityLib" Serialize="Required Public" />
<Namespace Name="System.Collections.ObjectModel" >
<TypeInstantiation Name="ObservableCollection"
Arguments="ContosoClient.DataModel.ProductItem" Serialize="Public" />
<TypeInstantiation Name="ReadOnlyObservableCollection"
Arguments="ContosoClient.DataModel.ProductGroup" Serialize="Public" />
</Namespace>
</Application>
</Directives>
Struktur file arahan runtime
File arahan runtime menggunakan http://schemas.microsoft.com/netfx/2013/01/metadata
namespace layanan.
Elemen akar adalah elemen Direktif . Ini dapat berisi nol atau lebih elemen Pustaka , dan nol atau satu elemen Aplikasi , seperti yang ditunjukkan dalam struktur berikut. Atribut elemen Aplikasi dapat menentukan kebijakan refleksi runtime aplikasi di seluruh aplikasi, atau dapat berfungsi sebagai kontainer untuk elemen anak. Elemen Pustaka , di sisi lain, hanyalah kontainer. Turunan elemen Aplikasi dan Pustaka menentukan jenis, metode, bidang, properti, dan peristiwa yang tersedia untuk refleksi.
Untuk informasi referensi, pilih elemen dari struktur berikut atau lihat Elemen Arahan Runtime. Dalam hierarki berikut, elipsis menandai struktur rekursif. Informasi dalam tanda kurung menunjukkan apakah elemen tersebut opsional atau diperlukan, dan jika digunakan, berapa banyak instans (satu atau banyak) yang diizinkan.
- Arahan [1:1]
- Aplikasi [0:1]
- Assembly [0:M]
- Namespace [0:M] . . .
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- Namespace [0:M]
- Namespace [0:M] . . .
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- Ketik [0:M]
- Subjenis (subkelas dari jenis yang berisi) [O:1]
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- AttributeImplies (berisi jenis adalah atribut) [O:1]
- GenericParameter [0:M]
- Metode [0:M]
- Parameter [0:M]
- TypeParameter [0:M]
- GenericParameter [0:M]
- MethodInstantiation (metode generik yang dibangun) [0:M]
- Properti [0:M]
- Bidang [0:M]
- Peristiwa [0:M]
- TypeInstantiation (jenis generik yang dibangun) [0:M]
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- Metode [0:M]
- Parameter [0:M]
- TypeParameter [0:M]
- GenericParameter [0:M]
- MethodInstantiation (metode generik yang dibangun) [0:M]
- Properti [0:M]
- Bidang [0:M]
- Peristiwa [0:M]
- Assembly [0:M]
- Pustaka [0:M]
- Assembly [0:M]
- Namespace [0:M] . . .
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- Namespace [0:M]
- Namespace [0:M] . . .
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- Ketik [0:M]
- Subjenis (subkelas dari jenis yang berisi) [O:1]
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- AttributeImplies (berisi jenis adalah atribut) [O:1]
- GenericParameter [0:M]
- Metode [0:M]
- MethodInstantiation (metode generik yang dibangun) [0:M]
- Properti [0:M]
- Bidang [0:M]
- Peristiwa [0:M]
- TypeInstantiation (jenis generik yang dibangun) [0:M]
- Ketik [0:M] . . .
- TypeInstantiation (jenis generik yang dibangun) [0:M] . . .
- Metode [0:M]
- MethodInstantiation (metode generik yang dibangun) [0:M]
- Properti [0:M]
- Bidang [0:M]
- Peristiwa [0:M]
- Assembly [0:M]
- Aplikasi [0:1]
Elemen Aplikasi tidak dapat memiliki atribut, atau dapat memiliki atribut kebijakan yang dibahas di bagian Arahan runtime dan kebijakan.
Elemen Pustaka memiliki atribut tunggal, Name
, yang menentukan nama pustaka atau rakitan, tanpa ekstensi filenya. Misalnya, elemen Pustaka berikut berlaku untuk rakitan bernama Extensions.dll.
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<!-- Child elements go here -->
</Application>
<Library Name="Extensions">
<!-- Child elements go here -->
</Library>
</Directives>
Arahan dan kebijakan runtime
Elemen Aplikasi itu sendiri dan elemen turunan dari elemen Pustaka dan Aplikasi mengekspresikan kebijakan; yaitu, mereka menentukan cara aplikasi dapat menerapkan refleksi ke elemen program. Jenis kebijakan didefinisikan oleh atribut elemen (misalnya, Serialize
). Nilai kebijakan ditentukan oleh nilai atribut (misalnya, Serialize="Required"
).
Kebijakan apa pun yang ditentukan oleh atribut elemen berlaku untuk semua elemen turunan yang tidak menentukan nilai untuk kebijakan tersebut. Misalnya, jika kebijakan ditentukan oleh elemen Jenis , kebijakan tersebut berlaku untuk semua jenis dan anggota yang terkandung di mana kebijakan tidak ditentukan secara eksplisit.
Kebijakan yang dapat diekspresikan oleh elemen Aplikasi, Assembly, AttributeImplies, Namespace, Subtypes, dan Type berbeda dari kebijakan yang dapat dinyatakan untuk masing-masing anggota (dengan elemen Metode, Properti, Bidang, dan Peristiwa ).
Menentukan kebijakan untuk rakitan, namespace, dan jenis
Elemen Aplikasi, Assembly, AttributeImplies, Namespace, Subtipe, dan Type mendukung jenis kebijakan berikut:
Activate
. Mengontrol akses runtime ke konstruktor, untuk mengaktifkan aktivasi instans.Browse
. Mengontrol kueri untuk informasi tentang elemen program tetapi tidak mengaktifkan akses runtime apa pun.Dynamic
. Mengontrol akses runtime ke semua anggota jenis, termasuk konstruktor, metode, bidang, properti, dan peristiwa, untuk mengaktifkan pemrograman dinamis.Serialize
. Mengontrol akses runtime ke konstruktor, bidang, dan properti, untuk memungkinkan instans jenis diserialisasikan dan diserialisasikan oleh pustaka pihak ketiga seperti serializer Newtonsoft JSON.DataContractSerializer
. Mengontrol kebijakan untuk serialisasi yang menggunakan System.Runtime.Serialization.DataContractSerializer kelas .DataContractJsonSerializer
. Mengontrol kebijakan untuk serialisasi JSON yang menggunakan System.Runtime.Serialization.DataContractSerializer kelas .XmlSerializer
. Mengontrol kebijakan untuk serialisasi XML yang menggunakan System.Xml.Serialization.XmlSerializer kelas .MarshalObject
. Mengontrol kebijakan untuk marshaling jenis referensi ke WinRT dan COM.MarshalDelegate
. Mengontrol kebijakan untuk marshaling mendelegasikan jenis sebagai penunjuk fungsi ke kode asli.MarshalStructure
. Mengontrol kebijakan untuk marshaling struktur ke kode asli.
Pengaturan yang terkait dengan jenis kebijakan ini adalah:
All
. Aktifkan kebijakan untuk semua jenis dan anggota yang tidak dihapus oleh rantai alat.Auto
. Gunakan perilaku default. (Tidak menentukan kebijakan setara dengan mengatur kebijakanAuto
tersebut kecuali kebijakan tersebut ditimpa, misalnya oleh elemen induk.)Excluded
. Nonaktifkan kebijakan untuk elemen program.Public
. Aktifkan kebijakan untuk jenis publik atau anggota kecuali rantai alat menentukan bahwa anggota tidak perlu dan oleh karena itu menghapusnya. (Dalam kasus terakhir, Anda harus menggunakanRequired Public
untuk memastikan bahwa anggota disimpan dan memiliki kemampuan refleksi.)PublicAndInternal
. Aktifkan kebijakan untuk jenis atau anggota publik dan internal jika rantai alat tidak menghapusnya.Required Public
. Wajibkan rantai alat untuk menjaga jenis dan anggota publik apakah mereka digunakan atau tidak, dan mengaktifkan kebijakan untuk mereka.Required PublicAndInternal
. Mengharuskan rantai alat untuk menjaga jenis publik dan internal dan anggota apakah mereka digunakan atau tidak, dan mengaktifkan kebijakan untuk mereka.Required All
. Wajibkan rantai alat untuk menyimpan semua jenis dan anggota apakah mereka digunakan atau tidak, dan mengaktifkan kebijakan untuk mereka.
Misalnya, file arahan runtime berikut menentukan kebijakan untuk semua jenis dan anggota di DataClasses.dll perakitan. Ini memungkinkan refleksi untuk serialisasi semua properti publik, memungkinkan penjelajahan untuk semua jenis dan anggota jenis, memungkinkan aktivasi untuk semua jenis (karena Dynamic
atribut), dan memungkinkan refleksi untuk semua jenis publik dan anggota.
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Assembly Name="DataClasses" Serialize="Required Public"
Browse="All" Activate="PublicAndInternal"
Dynamic="Public" />
</Application>
<Library Name="UtilityLibrary">
<!-- Child elements go here -->
</Library>
</Directives>
Menentukan kebijakan untuk anggota
Elemen Properti dan Bidang mendukung jenis kebijakan berikut:
Browse
- Mengontrol kueri untuk informasi tentang anggota ini tetapi tidak mengaktifkan akses runtime apa pun.Dynamic
- Mengontrol akses runtime ke semua anggota jenis, termasuk konstruktor, metode, bidang, properti, dan peristiwa, untuk mengaktifkan pemrograman dinamis. Juga mengontrol kueri untuk informasi tentang jenis yang berisi.Serialize
- Mengontrol akses runtime ke anggota untuk memungkinkan instans jenis diserialisasikan dan dideserialisasi oleh pustaka seperti serializer Newtonsoft JSON. Kebijakan ini dapat diterapkan ke konstruktor, bidang, dan properti.
Elemen Metode dan Peristiwa mendukung jenis kebijakan berikut:
Browse
- Mengontrol kueri untuk informasi tentang anggota ini tetapi tidak mengaktifkan akses runtime apa pun.Dynamic
- Mengontrol akses runtime ke semua anggota jenis, termasuk konstruktor, metode, bidang, properti, dan peristiwa, untuk mengaktifkan pemrograman dinamis. Juga mengontrol kueri untuk informasi tentang jenis yang berisi.
Pengaturan yang terkait dengan jenis kebijakan ini adalah:
Auto
- Gunakan perilaku default. (Tidak menentukan kebijakan setara dengan mengatur kebijakan tersebut kecualiAuto
ada sesuatu yang menimpanya.)Excluded
- Jangan pernah menyertakan metadata untuk anggota.Included
- Aktifkan kebijakan jika jenis induk ada dalam output.Required
- Mengharuskan rantai alat untuk menjaga anggota ini bahkan jika tampaknya tidak digunakan, dan mengaktifkan kebijakan untuk itu.
Semantik file arahan runtime
Kebijakan dapat didefinisikan secara bersamaan untuk elemen tingkat yang lebih tinggi dan tingkat bawah. Misalnya, kebijakan dapat didefinisikan untuk perakitan, dan untuk beberapa jenis yang terkandung dalam rakitan tersebut. Jika elemen tingkat bawah tertentu tidak diwakili, elemen tersebut mewarisi kebijakan induknya. Misalnya, jika Assembly
elemen ada tetapi Type
elemen tidak, kebijakan yang ditentukan dalam Assembly
elemen berlaku untuk setiap jenis dalam rakitan. Beberapa elemen juga dapat menerapkan kebijakan ke elemen program yang sama. Misalnya, elemen Assembly terpisah mungkin menentukan elemen kebijakan yang sama untuk rakitan yang sama secara berbeda. Bagian berikut menjelaskan bagaimana kebijakan untuk jenis tertentu diselesaikan dalam kasus tersebut.
Elemen Jenis atau Metode dari jenis atau metode umum menerapkan kebijakannya ke semua instansiasi yang tidak memiliki kebijakannya sendiri. Misalnya, Type
elemen yang menentukan kebijakan untuk berlaku untuk List<T> semua instans yang dibangun dari jenis generik tersebut, kecuali jika ditimpa untuk jenis generik tertentu yang dibangun (seperti List<Int32>
) oleh TypeInstantiation
elemen. Jika tidak, elemen menentukan kebijakan untuk elemen program bernama.
Ketika elemen ambigu, mesin mencari kecocokan, dan jika menemukan kecocokan yang tepat, ia akan menggunakannya. Jika menemukan beberapa kecocokan, akan ada peringatan atau kesalahan.
Jika dua arahan menerapkan kebijakan ke elemen program yang sama
Jika dua elemen dalam file arahan runtime yang berbeda mencoba mengatur jenis kebijakan yang sama untuk elemen program yang sama (seperti rakitan atau jenis) ke nilai yang berbeda, konflik diselesaikan sebagai berikut:
Excluded
Jika elemen ada, elemen tersebut memiliki prioritas.Required
lebih diutamakan daripada bukanRequired
.All
lebih diutamakan daripadaPublicAndInternal
, yang lebih diutamakan daripadaPublic
.Setiap pengaturan eksplisit lebih diutamakan daripada
Auto
.
Misalnya, jika satu proyek menyertakan dua file arahan runtime berikut, kebijakan serialisasi untuk DataClasses.dll diatur ke dan Required Public
All
. Dalam hal ini, kebijakan serialisasi akan diselesaikan sebagai Required All
.
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Assembly Name="DataClasses" Serialize="Required Public"/>
</Application>
<Library Name="DataClasses">
<!-- any other elements -->
</Library>
</Directives>
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Assembly Name="DataClasses" Serialize="All" />
</Application>
<Library Name="DataClasses">
<!-- any other elements -->
</Library>
</Directives>
Namun, jika dua arahan dalam satu file arahan runtime mencoba mengatur jenis kebijakan yang sama untuk elemen program yang sama, alat Definisi Skema XML menampilkan pesan kesalahan.
Jika elemen turunan dan induk menerapkan jenis kebijakan yang sama
Elemen turunan mengambil alih elemen induknya, termasuk Excluded
pengaturan. Penimpaan adalah alasan utama Anda ingin menentukan Auto
.
Dalam contoh berikut, pengaturan kebijakan serialisasi untuk semua yang DataClasses
tidak ada di DataClasses.ViewModels
dalamnya adalah Required Public
, dan semua yang ada di keduanya DataClasses
dan DataClasses.ViewModels
akan menjadi All
.
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Assembly Name="DataClasses" Serialize="Required Public" >
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
</Assembly>
</Application>
<Library Name="DataClasses">
<!-- any other elements -->
</Library>
</Directives>
Jika terbuka generik dan elemen yang dibuat menerapkan jenis kebijakan yang sama
Dalam contoh berikut, Dictionary<int,int>
ditetapkan Browse
kebijakan hanya jika mesin memiliki alasan lain untuk memberikan Browse
kebijakan (yang jika tidak akan menjadi perilaku default); setiap instansiasi Dictionary<TKey,TValue> lainnya akan memiliki semua anggotanya yang dapat ditelusuri.
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
<Application>
<Assembly Name="DataClasses" Serialize="Required Public" >
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
</Assembly>
<Namespace Name="DataClasses.Generics" />
<Type Name="Dictionary" Browse="All" />
<TypeInstantiation Name="Dictionary"
Arguments="System.Int32,System.Int32" Browse="Auto" />
</Application>
<Library Name="DataClasses">
<!-- any other elements -->
</Library>
</Directives>
Bagaimana kebijakan disimpulkan
Setiap jenis kebijakan memiliki sekumpulan aturan berbeda yang menentukan bagaimana keberadaan jenis kebijakan tersebut memengaruhi konstruksi lain.
Efek kebijakan Telusuri
Menerapkan kebijakan ke Browse
jenis melibatkan perubahan kebijakan berikut:
Jenis dasar jenis ditandai dengan
Browse
kebijakan.Jika jenisnya adalah generik yang dibuat instans, versi jenis yang tidak terinstansiasi ditandai dengan
Browse
kebijakan.Jika jenisnya adalah delegasi,
Invoke
metode pada jenis ditandai denganDynamic
kebijakan.Setiap antarmuka jenis ditandai dengan
Browse
kebijakan.Jenis setiap atribut yang diterapkan ke jenis ditandai dengan
Browse
kebijakan.Jika jenisnya umum, setiap jenis batasan ditandai dengan
Browse
kebijakan.Jika jenisnya generik, jenis di mana jenis dibuat ditandai dengan
Browse
kebijakan.
Menerapkan kebijakan ke Browse
metode melibatkan perubahan kebijakan berikut:
Setiap jenis parameter metode ditandai dengan
Browse
kebijakan.Jenis pengembalian metode ditandai dengan
Browse
kebijakan.Jenis metode yang berisi ditandai dengan
Browse
kebijakan.Jika metode ini adalah metode generik yang dibuat instans, metode generik yang tidak terinstansiasi ditandai dengan
Browse
kebijakan.Jenis setiap atribut yang diterapkan ke metode ditandai dengan
Browse
kebijakan.Jika metode umum, setiap jenis batasan ditandai dengan
Browse
kebijakan.Jika metode umum, jenis di mana metode dibuat ditandai dengan
Browse
kebijakan.
Menerapkan kebijakan ke Browse
bidang melibatkan perubahan kebijakan berikut:
Jenis setiap atribut yang diterapkan ke bidang ditandai dengan
Browse
kebijakan.Jenis bidang ditandai dengan
Browse
kebijakan.Jenis tempat bidang berada ditandai dengan
Browse
kebijakan.
Efek kebijakan Dinamis
Menerapkan kebijakan ke Dynamic
jenis melibatkan perubahan kebijakan berikut:
Jenis dasar jenis ditandai dengan
Dynamic
kebijakan.Jika jenisnya adalah generik yang dibuat instans, versi jenis yang tidak terinstansiasi ditandai dengan
Dynamic
kebijakan.Jika jenisnya adalah jenis delegasi,
Invoke
metode pada jenis ditandai denganDynamic
kebijakan.Setiap antarmuka jenis ditandai dengan
Browse
kebijakan.Jenis setiap atribut yang diterapkan ke jenis ditandai dengan
Browse
kebijakan.Jika jenisnya umum, setiap jenis batasan ditandai dengan
Browse
kebijakan.Jika jenisnya generik, jenis di mana jenis dibuat ditandai dengan
Browse
kebijakan.
Menerapkan kebijakan ke Dynamic
metode melibatkan perubahan kebijakan berikut:
Setiap jenis parameter metode ditandai dengan
Browse
kebijakan.Jenis pengembalian metode ditandai dengan
Dynamic
kebijakan.Jenis metode yang berisi ditandai dengan
Dynamic
kebijakan.Jika metode ini adalah metode generik yang dibuat instans, metode generik yang tidak terinstansiasi ditandai dengan
Browse
kebijakan.Jenis setiap atribut yang diterapkan ke metode ditandai dengan
Browse
kebijakan.Jika metode umum, setiap jenis batasan ditandai dengan
Browse
kebijakan.Jika metode umum, jenis di mana metode dibuat ditandai dengan
Browse
kebijakan.Metode ini dapat dipanggil oleh
MethodInfo.Invoke
, dan mendelegasikan pembuatan menjadi mungkin oleh MethodInfo.CreateDelegate.
Menerapkan kebijakan ke Dynamic
bidang melibatkan perubahan kebijakan berikut:
Jenis setiap atribut yang diterapkan ke bidang ditandai dengan
Browse
kebijakan.Jenis bidang ditandai dengan
Dynamic
kebijakan.Jenis tempat bidang berada ditandai dengan
Dynamic
kebijakan.
Efek kebijakan Aktivasi
Menerapkan kebijakan Aktivasi ke jenis melibatkan perubahan kebijakan berikut:
Jika jenisnya adalah generik yang dibuat instans, versi jenis yang tidak terinstansiasi ditandai dengan
Browse
kebijakan.Jika jenisnya adalah jenis delegasi,
Invoke
metode pada jenis ditandai denganDynamic
kebijakan.Konstruktor jenis ditandai dengan
Activation
kebijakan.
Menerapkan kebijakan ke Activation
metode melibatkan perubahan kebijakan berikut:
- Konstruktor dapat dipanggil dengan ConstructorInfo.Invoke metode dan Activator.CreateInstance . Untuk metode,
Activation
kebijakan hanya memengaruhi konstruktor.
Menerapkan kebijakan ke Activation
bidang tidak berpengaruh.
Efek kebijakan Serialisasi
Kebijakan ini Serialize
memungkinkan penggunaan serializer berbasis refleksi umum. Namun, karena pola akses refleksi yang tepat dari serializer non-Microsoft tidak diketahui oleh Microsoft, kebijakan ini mungkin tidak sepenuhnya efektif.
Menerapkan kebijakan ke Serialize
jenis melibatkan perubahan kebijakan berikut:
Jenis dasar jenis ditandai dengan
Serialize
kebijakan.Jika jenisnya adalah generik yang dibuat instans, versi jenis yang tidak terinstansiasi ditandai dengan
Browse
kebijakan.Jika jenisnya adalah jenis delegasi,
Invoke
metode pada jenis ditandai denganDynamic
kebijakan.Jika jenisnya adalah enumerasi, array jenis ditandai dengan
Serialize
kebijakan.Jika jenis mengimplementasikan IEnumerable<T>,
T
ditandai denganSerialize
kebijakan.Jika jenisnya adalah IEnumerable<T>, , ICollection<T>IList<T>, IReadOnlyCollection<T>, atau IReadOnlyList<T>, lalu
T[]
ditandai List<T> denganSerialize
kebijakan, tetapi tidak ada anggota jenis antarmuka yang ditandai denganSerialize
kebijakan.Jika jenisnya adalah List<T>, tidak ada anggota jenis yang ditandai dengan
Serialize
kebijakan.Jika jenisnya adalah IDictionary<TKey,TValue>, Dictionary<TKey,TValue> ditandai dengan
Serialize
kebijakan. tetapi tidak ada anggota jenis yang ditandai denganSerialize
kebijakan.Jika jenisnya adalah Dictionary<TKey,TValue>, tidak ada anggota jenis yang ditandai dengan
Serialize
kebijakan.Jika jenis mengimplementasikan IDictionary<TKey,TValue>,
TKey
danTValue
ditandai denganSerialize
kebijakan.Setiap konstruktor, setiap aksesor properti, dan setiap bidang ditandai dengan
Serialize
kebijakan.
Menerapkan kebijakan ke Serialize
metode melibatkan perubahan kebijakan berikut:
Jenis yang berisi ditandai dengan
Serialize
kebijakan.Jenis pengembalian metode ditandai dengan
Serialize
kebijakan.
Menerapkan kebijakan ke Serialize
bidang melibatkan perubahan kebijakan berikut:
Jenis yang berisi ditandai dengan
Serialize
kebijakan.Jenis bidang ditandai dengan
Serialize
kebijakan.
Efek kebijakan XmlSerializer, DataContractSerializer, dan DataContractJsonSerializer
Serialize
Tidak seperti kebijakan, yang ditujukan untuk serializer berbasis refleksi, XmlSerializerkebijakan , DataContractSerializer, dan DataContractJsonSerializer digunakan untuk mengaktifkan sekumpulan serializer yang diketahui oleh rantai alat .NET Native. Serializer ini tidak diimplementasikan dengan menggunakan pantulan, tetapi kumpulan jenis yang dapat diserialisasikan pada waktu proses ditentukan dengan cara yang sama seperti jenis yang dapat direfleksikan.
Menerapkan salah satu kebijakan ini ke jenis memungkinkan jenis diserialisasikan dengan serializer yang cocok. Selain itu, semua jenis yang dapat ditentukan oleh mesin serialisasi secara statis karena membutuhkan serialisasi juga akan dapat diserialisasikan.
Kebijakan ini tidak berpengaruh pada metode atau bidang.
Untuk informasi selengkapnya, lihat bagian "Perbedaan dalam Serializer" di Memigrasikan Aplikasi Windows Store Anda ke .NET Native.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk