Bagikan melalui


Mengimpor Pustaka Jenis sebagai Rakitan

Definisi jenis COM biasanya berada di pustaka jenis. Sebaliknya, kompilator yang mematuhi CLS menghasilkan metadata jenis dalam rakitan. Dua sumber informasi jenis sangat berbeda. Topik ini menjelaskan teknik untuk menghasilkan metadata dari pustaka jenis. Rakitan yang dihasilkan disebut perakitan interop, dan informasi jenis yang dikandungnya memungkinkan aplikasi .NET Framework untuk menggunakan jenis COM.

Ada dua cara untuk membuat informasi jenis ini tersedia untuk aplikasi Anda:

  • Menggunakan rakitan interop khusus waktu desain: Dimulai dengan .NET Framework 4, Anda dapat menginstruksikan pengompilasi untuk menyematkan informasi jenis dari rakitan interop ke dalam executable Anda. Pengompilasi hanya menyematkan informasi jenis yang digunakan aplikasi Anda. Anda tidak perlu menerapkan rakitan interop dengan aplikasi Anda. Hal ini adalah teknik yang direkomendasikan.

  • Menyebarkan rakitan interop: Anda dapat membuat referensi standar ke perakitan interop. Dalam hal ini, rakitan interop harus disebarkan dengan aplikasi Anda. Jika Anda menggunakan teknik ini, dan Anda tidak menggunakan komponen COM pribadi, selalu referensikan rakitan interop utama (PIA) yang diterbitkan oleh pembuat komponen COM yang ingin disertakan dalam kode terkelola Anda. Untuk informasi selengkapnya tentang memproduksi dan menggunakan rakitan interop utama, lihat Rakitan Interop Utama.

Saat Anda menggunakan rakitan interop khusus waktu desain, Anda dapat menyematkan informasi jenis dari rakitan interop utama yang diterbitkan oleh penulis komponen COM. Namun, Anda tidak perlu menyebarkan rakitan interop dengan aplikasi Anda.

Menggunakan rakitan interop khusus waktu desain mengurangi ukuran aplikasi Anda, karena sebagian besar aplikasi tidak menggunakan semua fitur komponen COM. Pengompilasi sangat efisien ketika menyematkan informasi jenis; jika aplikasi Anda hanya menggunakan beberapa metode pada antarmuka COM, pengompilasi tidak menyematkan metode yang tidak digunakan. Ketika aplikasi yang telah menyematkan informasi jenis berinteraksi dengan aplikasi lain seperti itu, atau berinteraksi dengan aplikasi yang menggunakan rakitan interop utama, runtime bahasa umum menggunakan aturan kesetaraan jenis untuk menentukan apakah dua jenis dengan nama yang sama mewakili jenis COM yang sama. Anda tidak perlu mengetahui aturan ini untuk menggunakan objek COM. Namun, jika Anda tertarik dengan aturan, lihat Jenis Kesetaraan dan Jenis Interop Tersemat.

Menghasilkan Metadata

Pustaka jenis COM dapat berupa file mandiri yang memiliki ekstensi .tlb, seperti Loanlib.tlb. Beberapa pustaka jenis disematkan di bagian sumber daya file .dll atau .exe. Sumber lain dari jenis informasi pustaka adalah file .olb dan .ocx.

Setelah Anda menemukan pustaka jenis yang berisi implementasi jenis COM target Anda, Anda memiliki opsi berikut untuk menghasilkan rakitan interop yang berisi metadata jenis:

  • Visual Studio

    Visual Studio secara otomatis mengonversi jenis COM dalam pustaka jenis menjadi metadata dalam rakitan. Untuk mengetahui petunjuknya, lihat Cara: Menambahkan Referensi ke Pustaka Tipe.

  • Pengimpor Pustaka tipe (Tlbimp.exe)

    Pengimpor pustaka tipe menyediakan opsi baris perintah untuk menyesuaikan metadata dalam file interop yang dihasilkan, mengimpor jenis dari pustaka jenis yang ada, dan menghasilkan rakitan interop dan namespace. Untuk mengetahui petunjuknya, lihat Cara: Membuat Rakitan Interop dari Pustaka Jenis.

  • System.Runtime.InteropServices.TypeLibConverter kelas

    Kelas ini menyediakan metode untuk mengonversi coclass dan antarmuka dalam pustaka tipe ke metadata dalam assembly. Ini menghasilkan output metadata yang sama dengan Tlbimp.exe. Namun, tidak seperti Tlbimp.exe, kelas TypeLibConverter dapat mengonversi pustaka jenis dalam memori menjadi metadata.

  • Pembungkus kustom

    Ketika pustaka jenis tidak tersedia atau salah, salah satu opsinya adalah membuat definisi duplikat kelas atau antarmuka dalam kode sumber terkelola. Anda kemudian mengkompilasi kode sumber dengan pengompilasi yang menargetkan runtime untuk menghasilkan metadata dalam perakitan.

    Untuk menentukan jenis COM secara manual, Anda harus memiliki akses ke item berikut:

    • Deskripsi yang tepat tentang coclass dan antarmuka yang didefinisikan.

    • Pengompilasi, seperti pengompilasi C#, yang dapat menghasilkan definisi kelas .NET Framework yang sesuai.

    • Pengetahuan tentang jenis aturan konversi library-to-assembly.

    Menulis pembungkus kustom adalah teknik lanjutan. Untuk informasi tambahan tentang cara membuat pembungkus kustom, lihat Menyesuaikan Pembungkus Standar.

Untuk informasi selengkapnya tentang proses impor interop COM, lihat Ketik Pustaka ke Ringkasan Konversi Rakitan.

Lihat juga