Penerusan Tipe (C++/CLI)
Penerusan jenis memungkinkan Anda memindahkan jenis dari satu assembly (assembly A) ke assembly lain (assembly B), sehingga, tidak perlu mengkombinasikan ulang klien yang mengonsumsi assembly A.
Windows Runtime
Fitur ini tidak didukung di Windows Runtime.
Runtime Bahasa Umum
Contoh kode berikut menunjukkan cara menggunakan penerusan jenis.
Sintaks
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
Parameter
baru
Rakitan tempat Anda memindahkan definisi jenis.
jenis
Jenis yang definisinya Anda pindah ke rakitan lain.
Keterangan
Setelah komponen (rakitan) dikirim dan digunakan oleh aplikasi klien, Anda dapat menggunakan penerusan jenis untuk memindahkan jenis dari komponen (rakitan) ke rakitan lain, mengirim komponen yang diperbarui (dan rakitan tambahan yang diperlukan), dan aplikasi klien masih akan berfungsi tanpa dikompilasi ulang.
Penerusan jenis hanya berfungsi untuk komponen yang dirujuk oleh aplikasi yang ada. Saat Anda membangun kembali aplikasi, harus ada referensi rakitan yang sesuai untuk jenis apa pun yang digunakan dalam aplikasi.
Saat meneruskan jenis (Tipe A) dari rakitan, Anda harus menambahkan atribut untuk jenis tersebut TypeForwardedTo
, serta referensi perakitan. Rakitan yang Anda referensikan harus berisi salah satu hal berikut ini:
Definisi untuk Tipe A.
Atribut
TypeForwardedTo
untuk Tipe A, serta referensi perakitan.
Contoh jenis yang dapat diteruskan meliputi:
kelas ref
kelas nilai
enum
antarmuka
Anda tidak dapat meneruskan jenis berikut:
Tipe Generik
Jenis asli
Jenis berlapis (jika Anda ingin meneruskan jenis berlapis, Anda harus meneruskan jenis penutup)
Anda dapat meneruskan jenis ke rakitan yang ditulis dalam bahasa apa pun yang menargetkan runtime bahasa umum.
Jadi, jika file kode sumber yang digunakan untuk membangun rakitan A.dll berisi definisi jenis (ref class MyClass
), dan Anda ingin memindahkan definisi jenis tersebut ke assembly B.dll, Anda akan:
Pindahkan
MyClass
definisi jenis ke file kode sumber yang digunakan untuk membangun B.dll.B.dll perakitan build
MyClass
Hapus definisi jenis dari kode sumber yang digunakan untuk membangun A.dll, dan ganti dengan yang berikut:#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
Buat A.dll rakitan.
Gunakan A.dll tanpa mengolah ulang aplikasi klien.
Persyaratan
Opsi pengkompilasi: /clr