Menerapkan Atribut Interop

Namespace layanan System.Runtime.InteropServices menyediakan tiga kategori atribut khusus interop: yang diterapkan oleh Anda pada waktu desain, yang diterapkan oleh alat interop COM dan API selama proses konversi, dan yang diterapkan baik oleh Anda atau 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 Waktu Desain

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

Atribut Deskripsi
AutomationProxyAttribute Menentukan apakah jenis harus disusun menggunakan penyusun Automation atau proksi kustom dan stub.
ClassInterfaceAttribute Mengontrol jenis antarmuka yang dibuat untuk kelas.
CoClassAttribute Mengidentifikasi CLSID dari coclass asli yang diimpor dari pustaka tipe.

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

Alat interop COM biasanya menerapkan atribut ini.
ComRegisterFunctionAttribute Menunjukkan bahwa suatu metode harus dipanggil ketika rakitan 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 suatu metode harus dipanggil jika rakitan tidak terdaftar dari COM, sehingga kode yang ditulis pengguna dapat dijalankan selama proses.
ComVisibleAttribute Merender jenis yang tidak terlihat oleh COM saat nilai atribut sama dengan false. Atribut ini dapat diterapkan ke jenis individu atau ke seluruh rakitan untuk mengontrol visibilitas COM. Secara default, semua jenis publik yang dikelola dapat dilihat; atribut tidak diperlukan untuk membuatnya dapat dilihat.
DispIdAttribute Menentukan pengidentifikasi pengiriman (DISPID) COM dari suatu 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 diimplementasikan 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 tipe. 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 mengekspos antarmuka ganda dan dispinterface ke COM.
InAttribute Menunjukkan bahwa data harus disusun ke pemanggil. Dapat digunakan untuk parameter atribut.
InterfaceTypeAttribute Mengontrol bagaimana antarmuka terkelola diekspos ke klien COM (Dual, IUnknown-derived, atau IDispatch saja).

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

Alat interop COM dapat menerapkan atribut ini.
MarshalAsAttribute Menunjukkan bagaimana data dalam bidang atau parameter harus disusun antara kode terkelola dan tidak terkelola. Atribut selalu bersifat opsional karena setiap jenis data memiliki perilaku penyusunan 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 disusun dari objek yang dipanggil kembali ke pemanggilnya.
PreserveSigAttribute Menyembunyikan transformasi tanda tangan HRESULT atau retval yang biasanya terjadi selama panggilan interoperabilitas. Atribut mempengaruhi penyusunan serta ekspor pustaka tiipe.

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

Alat interop COM dapat menerapkan atribut ini.

Atribut Alat Konversi

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

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

Lihat juga