Bagikan melalui


Menerapkan Atribut Interop

Namespace System.Runtime.InteropServices menyediakan tiga kategori atribut khusus interop: yang diterapkan oleh Anda pada waktu desain, yang diterapkan oleh alat dan API interop COM selama proses konversi, dan yang diterapkan baik oleh Anda maupun oleh interop COM.

Jika Anda tidak terbiasa dengan tugas menerapkan atribut ke kode terkelola, lihat Memperluas Metadata Menggunakan Atribut. Seperti atribut kustom lainnya, Anda dapat menerapkan atribut khusus interop ke jenis, metode, properti, parameter, bidang, dan anggota lainnya.

Atribut Design-Time

Anda dapat menyesuaikan hasil proses konversi yang dilakukan oleh alat interop COM dan API dengan menggunakan atribut waktu desain. Tabel berikut menjelaskan atribut yang bisa Anda terapkan ke kode sumber terkelola Anda. Alat interop COM, kadang-kadang, mungkin juga menerapkan atribut yang dijelaskan dalam tabel ini.

Karakteristik Deskripsi
AutomationProxyAttribute Menentukan apakah tipe harus diproses menggunakan marshaller Automation atau proksi dan rutin kustom.
ClassInterfaceAttribute Mengontrol jenis antarmuka yang dihasilkan untuk kelas.
CoClassAttribute Mengidentifikasi CLSID dari coclass asli yang diimpor dari perpustakaan tipe.

Alat interop COM biasanya menerapkan atribut ini.
ComImportAttribute Menunjukkan bahwa definisi coclass atau antarmuka diimpor dari pustaka jenis COM. Runtime menggunakan penanda ini untuk mengetahui cara mengaktifkan dan merekayasa tipe tersebut. Atribut ini melarang tipe untuk diekspor kembali ke pustaka tipe.

Alat interop COM biasanya menerapkan atribut ini.
ComRegisterFunctionAttribute Menunjukkan bahwa metode harus dipanggil ketika assembly terdaftar untuk digunakan dari COM, sehingga kode yang ditulis pengguna dapat dijalankan selama proses pendaftaran.
ComSourceInterfacesAttribute Mengidentifikasi antarmuka yang merupakan sumber peristiwa untuk kelas.

Alat interop COM dapat menerapkan atribut ini.
ComUnregisterFunctionAttribute Menunjukkan bahwa metode harus dipanggil ketika rakitan tidak terdaftar dari COM, sehingga kode yang ditulis pengguna dapat dijalankan selama proses.
ComVisibleAttribute Merender jenis yang tidak terlihat oleh COM ketika nilai atribut sama dengan false. Atribut ini dapat diterapkan ke jenis individu atau ke seluruh perakitan untuk mengontrol visibilitas COM. Secara default, semua jenis publik terkelola terlihat; atribut tidak diperlukan untuk membuatnya terlihat.
DispIdAttribute Menentukan pengidentifikasi pengiriman COM (DISPID) dari metode atau bidang. Atribut ini berisi DISPID untuk metode, bidang, atau properti yang dijelaskannya.

Alat interop COM dapat menerapkan atribut ini.
ComDefaultInterfaceAttribute Menunjukkan antarmuka default untuk kelas COM yang diterapkan di .NET.

Alat interop COM dapat menerapkan atribut ini.
FieldOffsetAttribute Menunjukkan posisi fisik setiap bidang dalam kelas saat digunakan dengan StructLayoutAttribute, dan LayoutKind diatur ke Eksplisit.
GuidAttribute Menentukan pengidentifikasi unik global (GUID) dari kelas, antarmuka, atau seluruh pustaka jenis. String yang diteruskan ke atribut harus berupa format yang merupakan argumen konstruktor yang dapat diterima untuk jenis System.Guid.

Alat interop COM dapat menerapkan atribut ini.
IDispatchImplAttribute Menunjukkan implementasi antarmuka IDispatch mana yang digunakan runtime bahasa umum saat memaparkan antarmuka ganda dan antarmuka disp ke COM.
InAttribute Menunjukkan bahwa data harus dinaikkan ke pemanggil. Dapat digunakan untuk mengaitkan parameter.
InterfaceTypeAttribute Mengatur bagaimana antarmuka terkelola diekspos ke klien COM (Dual, IUnknown-derived, atau hanya IDispatch).

Alat interop COM dapat menerapkan atribut ini.
LCIDConversionAttribute Menunjukkan bahwa tanda tangan metode yang tidak dikelola mengharapkan parameter LCID.

Alat interop COM dapat menerapkan atribut ini.
MarshalAsAttribute Menunjukkan bagaimana data dalam bidang atau parameter harus diproses antara kode terkelola dan kode yang tidak terkelola. Atribut selalu opsional karena setiap jenis data memiliki perilaku marshalling default.

Alat interop COM dapat menerapkan atribut ini.
OptionalAttribute Menunjukkan bahwa parameter bersifat opsional.

Alat interop COM dapat menerapkan atribut ini.
OutAttribute Menunjukkan bahwa data dalam bidang atau parameter harus dikirimkan kembali dari objek yang dipanggil kepada pemanggilnya.
PreserveSigAttribute Memadamkan transformasi tanda tangan HRESULT atau retval yang biasanya terjadi selama panggilan interoperabilitas. Atribut ini memengaruhi proses marshalling dan ekspor pustaka tipe.

Alat interop COM dapat menerapkan atribut ini.
ProgIdAttribute Menentukan ProgID dari kelas .NET. Dapat digunakan untuk mengaitkan kelas.
StructLayoutAttribute Mengontrol tata letak fisik bidang kelas.

Alat interop COM dapat menerapkan atribut ini.

Atribut Conversion-Tool

Tabel berikut menjelaskan atribut yang diterapkan alat interop COM selama proses konversi. Anda tidak menerapkan atribut ini pada waktu desain.

Karakteristik Deskripsi
ComAliasNameAttribute Menunjukkan alias COM untuk parameter atau jenis bidang. Dapat digunakan untuk mengaitkan parameter, bidang, atau mengembalikan nilai.
ComConversionLossAttribute Menunjukkan bahwa informasi mengenai kelas atau antarmuka hilang saat diimpor dari perpustakaan tipe ke dalam rakitan.
ComEventInterfaceAttribute Mengidentifikasi antarmuka sumber dan kelas yang mengimplementasikan metode antarmuka peristiwa.
ImportedFromTypeLibAttribute Menunjukkan bahwa rakitan awalnya diimpor dari pustaka jenis COM. Atribut ini berisi definisi pustaka jenis dari pustaka asli.
TypeLibFuncAttribute Memuat FUNCFLAGS yang pada awalnya diimpor untuk fungsi ini dari pustaka tipe COM.
TypeLibTypeAttribute Memuat TYPEFLAGS yang telah diimpor secara asli untuk tipe ini dari pustaka tipe COM.
TypeLibVarAttribute Berisi VARFLAGS yang awalnya diimpor untuk variabel ini dari pustaka jenis COM.

Lihat juga