<Elemen ImpliesType> (.NET Native)
Menerapkan kebijakan ke jenis, jika kebijakan tersebut telah diterapkan ke jenis atau metode yang berisi.
Sintaks
<ImpliesType Name="type_name"
Activate="policy_type"
Browse="policy_type"
Dynamic="policy_type"
Serialize="policy_type"
DataContractSerializer="policy_setting"
DataContractJsonSerializer="policy_setting"
XmlSerializer="policy_setting"
MarshalObject="policy_setting"
MarshalDelegate="policy_setting"
MarshalStructure="policy_setting" />
Atribut dan Elemen
Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.
Atribut
Atribut | Jenis atribut | Deskripsi |
---|---|---|
Name |
Umum | Atribut yang diperlukan. Menentukan nama jenis. |
Activate |
Refleksi | Atribut opsional. Mengontrol akses runtime ke konstruktor untuk mengaktifkan aktivasi instans. |
Browse |
Refleksi | Atribut opsional. Mengontrol kueri untuk informasi tentang elemen program, tetapi tidak mengaktifkan akses runtime apa pun. |
Dynamic |
Refleksi | Atribut opsional. Mengontrol akses runtime ke semua anggota jenis, termasuk konstruktor, metode, bidang, properti, dan peristiwa, untuk mengaktifkan pemrograman dinamis. |
Serialize |
Serialisasi | Atribut opsional. Mengontrol akses runtime ke konstruktor, bidang, dan properti, untuk memungkinkan instans jenis diserialisasikan dan dideserialisasi oleh pustaka seperti serializer Newtonsoft JSON. |
DataContractSerializer |
Serialisasi | Atribut opsional. Mengontrol kebijakan untuk serialisasi yang menggunakan System.Runtime.Serialization.DataContractSerializer kelas . |
DataContractJsonSerializer |
Serialisasi | Atribut opsional. Mengontrol kebijakan untuk serialisasi JSON yang menggunakan System.Runtime.Serialization.Json.DataContractJsonSerializer kelas . |
XmlSerializer |
Serialisasi | Atribut opsional. Mengontrol kebijakan untuk serialisasi XML yang menggunakan System.Xml.Serialization.XmlSerializer kelas . |
MarshalObject |
Interop | Atribut opsional. Mengontrol kebijakan untuk marshaling jenis referensi ke Windows Runtime dan COM. |
MarshalDelegate |
Interop | Atribut opsional. Mengontrol kebijakan untuk marshaling jenis delegasi sebagai penunjuk fungsi ke kode asli. |
MarshalStructure |
Interop | Atribut opsional. Mengontrol kebijakan untuk marshaling jenis nilai ke kode asli. |
Atribut nama
Nilai | Deskripsi |
---|---|
type_name | Nama jenis. Jika jenis yang diwakili oleh elemen ini <ImpliesType> terletak di namespace yang sama dengan elemen yang berisi <Type> , type_name dapat menyertakan nama jenis tanpa namespace layanannya. Jika tidak, type_name harus menyertakan nama jenis yang sepenuhnya memenuhi syarat. |
Semua atribut lainnya
Nilai | Deskripsi |
---|---|
policy_setting | Pengaturan yang akan diterapkan ke jenis kebijakan ini. Nilai yang mungkin adalah All , , Excluded Auto , Public , PublicAndInternal , Required Public , Required PublicAndInternal , dan Required All . Untuk informasi selengkapnya, lihat Pengaturan Kebijakan Arahan Runtime. |
Elemen Anak
Tidak ada.
Elemen Induk
Elemen | Deskripsi |
---|---|
<Jenis> | Menerapkan kebijakan refleksi ke jenis dan semua anggotanya. |
<TypeInstantiation> | Menerapkan kebijakan refleksi ke jenis generik yang dibangun dan semua anggotanya. |
<Metode> | Menerapkan kebijakan refleksi ke metode . |
Keterangan
Elemen <ImpliesType>
ini terutama ditujukan untuk digunakan oleh pustaka. Ini membahas skenario berikut:
Jika rutinitas perlu merefleksikan satu jenis, tentu perlu merefleksikan jenis kedua.
Metadata untuk instansiasi tersirat dari jenis kedua jika tidak tersedia, karena analisis statis tidak menunjukkan bahwa itu diperlukan.
Paling umum, kedua jenis tersebut adalah instansiasi generik dengan argumen jenis bersama.
Elemen <ImpliesType>
didefinisikan dengan asumsi bahwa kebutuhan untuk refleksi pada jenis yang ditentukan oleh elemen induknya menyiratkan kebutuhan untuk refleksi pada jenis yang ditentukan oleh <ImpliesType>
elemen . Misalnya, arahan refleksi berikut berlaku untuk dua jenis, Explicit<T>
dan Implicit<T>
.
<Type Name="Explicit{ET}">
<ImpliesType Name="Implicit{ET}" Dynamic="Required Public" />
</Type>
Arahan ini tidak berpengaruh kecuali instansiasi Explicit
memiliki pengaturan kebijakan yang ditentukan Dynamic
. Misalnya, jika itu masalahnya untuk Explicit<Int32>
, Implicit<Int32>
dibuat instans dengan anggota publiknya yang berakar, dan metadata mereka dibuat dapat diakses untuk pemrograman dinamis.
Berikut ini adalah contoh dunia nyata yang berlaku untuk setidaknya satu serializer. Direktif menangkap persyaratan yang mencerminkan sesuatu yang ditik sebagai IList<
sesuatu>
juga melibatkan refleksi pada jenis sesuatu yang>
sesuai List<
tanpa memerlukan anotasi per aplikasi.
<Type Name="System.Collections.Generic.IList{T}">
<ImpliesType Name="System.Collections.Generic.List{T}" Serialize="Public" />
</Type>
Elemen <ImpliesType>
juga dapat muncul dalam <Method>
elemen , karena dalam beberapa kasus membuat instans metode generik menyiratkan refleksi pada instansiasi jenis. Misalnya, bayangkan metode IEnumerable<T> MakeEnumerable<T>(string spelling, T defaultValue)
generik yang akan diakses pustaka tertentu secara dinamis bersama dengan jenis dan Array terkaitList<T>. Ini dapat diekspresikan sebagai:
<Type Name="MyType">
<Method Name="MakeEnumerable{T}" Signature="(System.String, T)" Dynamic="Included">
<ImpliesType Name="T[]" Dynamic="Public" />
<ImpliesType Name="System.Collections.Generic.List{T}" Dynamic="Public" />
</Method>
</Type>
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