Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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. |