ComVisibleAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Steruje ułatwieniami dostępu pojedynczego typu zarządzanego lub elementu członkowskiego lub wszystkich typów w zestawie do modelu 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
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie pokazano, jak można kontrolować widoczność modelu COM klasy, aby jej składowe nie są niewidoczne. Ustawiając ComVisibleAttribute na false na MyClass(SampleClass w przykładzie Visual Basic) i false na MyMethod i MyProperty, możesz uniknąć przypadkowo uwidaczniania członków modelu COM za pośrednictwem dziedziczenia.
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
Uwagi
Ten atrybut można zastosować do zestawów, interfejsów, klas, struktur, delegatów, wyliczenia, pól, metod, metod, metod dostępu do zdarzeń lub właściwości.
Wartość domyślna to true, która wskazuje, że typ zarządzany jest widoczny dla modelu COM. Ten atrybut nie jest potrzebny do uwidocznić publicznych zestawów i typów zarządzanych; są one domyślnie widoczne dla modelu COM. Widoczne mogą być tylko public typy. Atrybutu nie można użyć, aby w inny sposób internal lub protected typ był widoczny dla modelu COM lub aby elementy członkowskie nienadzorowalnego typu były widoczne.
Ustawienie atrybutu na false w zestawie powoduje ukrycie wszystkich public typów w zestawie. Można selektywnie ustawiać typy w zestawie, ustawiając poszczególne typy na true. Ustawienie atrybutu na false w określonym typie powoduje ukrycie tego typu i jego składowych. Nie można jednak uwidocznić elementów członkowskich typu, jeśli typ jest niewidoczny. Ustawienie atrybutu false na w typie uniemożliwia eksportowanie tego typu do biblioteki typów; klasy nie są zarejestrowane; interfejsy nigdy nie reagują na niezarządzane QueryInterface wywołania.
Jeśli nie ustawisz jawnie klasy i jej składowych na false, dziedziczone klasy mogą uwidocznić elementy członkowskie klasy bazowej COM, które są niewidoczne w oryginalnej klasie. Jeśli na przykład ustawisz właściwość ClassA false na i nie zastosujesz atrybutu do jej składowych, klasa i jej składowe są niewidoczne dla modelu COM. Jeśli jednak utworzysz klasę ClassB z klasy ClassA i wyeksportujesz klasę COM, składowe klasy ClassA staną się widocznymi elementami członkowskimi klasy bazowej ClassB.
Konstruktory
| Nazwa | Opis |
|---|---|
| ComVisibleAttribute(Boolean) |
Inicjuje nowe wystąpienie klasy |
Właściwości
| Nazwa | Opis |
|---|---|
| TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute. (Odziedziczone po Attribute) |
| Value |
Pobiera wartość wskazującą, czy typ COM jest widoczny. |
Metody
| Nazwa | Opis |
|---|---|
| Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
| GetHashCode() |
Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
| GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| IsDefaultAttribute() |
Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
| Match(Object) |
Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
| Nazwa | Opis |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt. (Odziedziczone po Attribute) |