Share via


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:

  1. Pindahkan MyClass definisi jenis ke file kode sumber yang digunakan untuk membangun B.dll.

  2. Bangun rakitan B.dll

  3. 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)];
    
  4. Bangun assembly A.dll.

  5. Gunakan A.dll tanpa mengkompilasi ulang aplikasi klien.

Persyaratan

Opsi pengkompilasi: /clr