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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk