Bagikan melalui


InterfaceTypeAttribute Kelas

Definisi

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
InterfaceTypeAttribute
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)

Berlaku untuk

Lihat juga