InterfaceTypeAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menunjukkan apakah antarmuka terkelola adalah dual, dispatch-only, atau IUnknown
-only saat terekspos ke COM.
public ref class InterfaceTypeAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
public sealed class InterfaceTypeAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class InterfaceTypeAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)>]
type InterfaceTypeAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type InterfaceTypeAttribute = class
inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menunjukkan cara InterfaceTypeAttribute
mengontrol bagaimana antarmuka diekspos ke COM.
using namespace System::Runtime::InteropServices;
//Interface is exposed to COM as dual.
interface class IMyInterface1{};
//Insert code here.
//Interface is exposed to COM as IDispatch.
[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIDispatch)]
interface class IMyInterface2{};
//Insert code here.
using System.Runtime.InteropServices;
//Interface is exposed to COM as dual.
interface IMyInterface1
{
//Insert code here.
}
//Interface is exposed to COM as IDispatch.
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
interface IMyInterface2
{
//Insert code here.
}
Imports System.Runtime.InteropServices
'Interface is exposed to COM as dual.
Interface IMyInterface1
'Insert code here.
End Interface
'Interface is exposed to COM as IDispatch.
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)> _
Interface IMyInterface2
'Insert code here.
End Interface
Keterangan
Anda dapat menerapkan atribut ini ke antarmuka.
Secara default, Tlbexp.exe (Pengekspor Pustaka Jenis) mengekspos antarmuka terkelola ke COM sebagai antarmuka ganda, memberi Anda fleksibilitas pengikatan terlambat atau performa pengikatan awal. Enumerasi ComInterfaceType memungkinkan Anda untuk mengambil alih perilaku default dan menentukan pengikatan terlambat saja atau pengikatan awal saja. Misalnya, Anda dapat menerapkan InterfaceType (ComInterfaceType.InterfaceIsIDispatch)
ke antarmuka untuk menghasilkan metadata untuk membatasi penelepon ke pengikatan terlambat saja. Meskipun antarmuka yang berasal dari IDispatch
antarmuka sering ganda, InterfaceIsIDispatch
anggota enumerasi hanya memungkinkan panggilan terlambat terikat ke metode antarmuka. Atribut ini tidak berpengaruh pada tampilan antarmuka terkelola. Untuk informasi tambahan tentang bagaimana antarmuka diekspos ke COM, lihat Konversi Jenis yang Diekspor.
Tlbimp.exe (Type Library Importer) juga menerapkan atribut ini ke antarmuka nondual yang diimpor; ini menerapkan anggota enumerasi yang sesuai untuk menunjukkan bahwa antarmuka hanya dikirim atau IUnknown
-saja.
Konstruktor
InterfaceTypeAttribute(ComInterfaceType) |
Menginisialisasi instans InterfaceTypeAttribute baru kelas dengan anggota enumerasi yang ditentukan ComInterfaceType . |
InterfaceTypeAttribute(Int16) |
Menginisialisasi instans InterfaceTypeAttribute baru kelas dengan anggota enumerasi yang ditentukan ComInterfaceType . |
Properti
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
Value |
ComInterfaceType Mendapatkan nilai yang menjelaskan bagaimana antarmuka harus diekspos ke COM. |
Metode
Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
IsDefaultAttribute() |
Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
Match(Object) |
Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |