Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 mendelegasikan jenis 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, , ExcludedAuto, 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, perlu dicerminkan pada jenis kedua.
Metadata untuk instans tersirat dari jenis kedua tidak tersedia, karena analisis statis tidak menunjukkan bahwa itu diperlukan.
Paling umum, kedua jenis tersebut adalah instansiasi generik dengan argumen jenis bersama.
Elemen <ImpliesType> ini 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 demikian Explicit<Int32>, Implicit<Int32> dibuat instans dengan anggota publiknya yang berakar, dan metadata mereka dapat diakses untuk pemrograman dinamis.
Berikut ini adalah contoh dunia nyata yang berlaku untuk setidaknya satu serializer. Arahan 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>