ComVisibleAttribute 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.
Mengontrol aksesibilitas jenis atau anggota terkelola individu, atau dari semua jenis dalam perakitan, ke COM.
public ref class ComVisibleAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
public sealed class ComVisibleAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ComVisibleAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
type ComVisibleAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ComVisibleAttribute = class
inherit Attribute
Public NotInheritable Class ComVisibleAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menunjukkan bagaimana Anda dapat mengontrol visibilitas ke COM dari kelas sehingga anggotanya tidak terlihat. Dengan mengatur ComVisibleAttribute
ke false
aktif MyClass
(SampleClass
dalam contoh Visual Basic), dan aktif MyMethod
dan false
MyProperty
, Anda dapat menghindari mengekspos anggota secara tidak sengaja ke COM melalui pewarisan.
using namespace System::Runtime::InteropServices;
[ComVisible(false)]
ref class MyClass
{
private:
int myProperty;
public:
MyClass()
{
//Insert code here.
}
[ComVisible(false)]
int MyMethod( String^ param )
{
return 0;
}
bool MyOtherMethod()
{
return true;
}
property int MyProperty
{
[ComVisible(false)]
int get()
{
return myProperty;
}
}
};
using System.Runtime.InteropServices;
[ComVisible(false)]
class MyClass
{
public MyClass()
{
//Insert code here.
}
[ComVisible(false)]
public int MyMethod(string param)
{
return 0;
}
public bool MyOtherMethod()
{
return true;
}
[ComVisible(false)]
public int MyProperty
{
get
{
return MyProperty;
}
}
}
Imports System.Runtime.InteropServices
<ComVisible(False)> _
Class SampleClass
Public Sub New()
'Insert code here.
End Sub
<ComVisible(False)> _
Public Function MyMethod(param As String) As Integer
Return 0
End Function
Public Function MyOtherMethod() As Boolean
Return True
End Function
<ComVisible(False)> _
Public ReadOnly Property MyProperty() As Integer
Get
Return MyProperty
End Get
End Property
End Class
Keterangan
Anda dapat menerapkan atribut ini ke rakitan, antarmuka, kelas, struktur, delegasi, enumerasi, bidang, metode, pengakses peristiwa, atau properti.
Defaultnya adalah true
, yang menunjukkan bahwa jenis terkelola terlihat oleh COM. Atribut ini tidak diperlukan untuk membuat rakitan dan jenis yang dikelola publik terlihat; mereka terlihat oleh COM secara default. Hanya public
jenis yang dapat dibuat terlihat. Atribut tidak dapat digunakan untuk membuat sebaliknya internal
atau protected
jenis terlihat oleh COM atau untuk membuat anggota dari jenis yang tidak terlihat terlihat.
Mengatur atribut ke false
pada assembly menyembunyikan semua public
jenis dalam assembly. Anda dapat secara selektif membuat jenis dalam perakitan terlihat dengan mengatur jenis individual ke true
. Mengatur atribut ke false
pada jenis tertentu menyembunyikan jenis tersebut dan anggotanya. Namun, Anda tidak dapat membuat anggota jenis terlihat jika jenisnya tidak terlihat. Mengatur atribut ke false
pada jenis mencegah jenis tersebut diekspor ke pustaka jenis; kelas tidak terdaftar; antarmuka tidak pernah responsif terhadap panggilan yang tidak dikelola QueryInterface
.
Kecuali Anda secara eksplisit mengatur kelas dan anggotanya ke false
, kelas yang diwariskan dapat mengekspos ke anggota kelas dasar COM yang tidak terlihat di kelas asli. Misalnya, jika Anda mengatur ClassA ke false
dan tidak menerapkan atribut ke anggotanya, kelas dan anggotanya tidak terlihat oleh COM. Namun, jika Anda memperoleh ClassB dari ClassA dan mengekspor ClassB ke COM, anggota ClassA menjadi anggota kelas dasar classB yang terlihat.
Untuk deskripsi terperinci tentang proses ekspor, lihat Rakitan ke Ringkasan Konversi Pustaka Jenis.
Konstruktor
ComVisibleAttribute(Boolean) |
Menginisialisasi instans baru kelas |
Properti
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
Value |
Mendapatkan nilai yang menunjukkan apakah jenis COM terlihat. |
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) |