ComVisibleAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee bepaalt u de toegankelijkheid van een afzonderlijk beheerd type of lid, of van alle typen binnen een assembly, aan 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
- Overname
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u de zichtbaarheid van COM van een klasse kunt beheren, zodat de leden onzichtbaar zijn. Als u ComVisibleAttribute instelt op false op MyClass(SampleClass in het Visual Basic voorbeeld) en false op MyMethod en MyProperty, u kunt voorkomen dat de leden per ongeluk via overname aan COM worden blootgesteld.
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
Opmerkingen
U kunt dit kenmerk toepassen op assembly's, interfaces, klassen, structuren, gedelegeerden, opsommingen, velden, methoden, gebeurtenistoegangsors of eigenschappen.
De standaardwaarde is true, wat aangeeft dat het beheerde type zichtbaar is voor COM. Dit kenmerk is niet nodig om openbare beheerde assembly's en typen zichtbaar te maken; ze zijn standaard zichtbaar voor COM. Alleen public typen kunnen zichtbaar worden gemaakt. Het kenmerk kan niet worden gebruikt om een anderszins internal of protected type zichtbaar te maken voor COM of om leden van een niet-zichtbaar type zichtbaar te maken.
Als u het kenmerk false instelt op de assembly, worden alle public typen in de assembly verborgen. U kunt selectief typen binnen de assembly zichtbaar maken door de afzonderlijke typen in te stellen op true. Als u het kenmerk false instelt op een specifiek type, worden dat type en de bijbehorende leden verborgen. U kunt echter geen leden van een type zichtbaar maken als het type onzichtbaar is. Als u het kenmerk false instelt op een type, voorkomt u dat het type wordt geëxporteerd naar een typebibliotheek; klassen zijn niet geregistreerd; interfaces reageren nooit op niet-beheerde QueryInterface aanroepen.
Tenzij u expliciet een klasse en de bijbehorende leden falseinstelt, kunnen overgenomen klassen worden blootgesteld aan COM-basisklasseleden die onzichtbaar zijn in de oorspronkelijke klasse. Als u bijvoorbeeld ClassA false instelt op en het kenmerk niet toepast op de leden, zijn de klasse en de bijbehorende leden onzichtbaar voor COM. Als u ClassB echter afleidt van ClassA en ClassB exporteert naar COM, worden ClassA-leden zichtbare basisklasseleden van ClassB.
Zie Assembly to Type Library Conversion Summary voor een gedetailleerde beschrijving van het exportproces.
Constructors
| Name | Description |
|---|---|
| ComVisibleAttribute(Boolean) |
Initialiseert een nieuw exemplaar van de |
Eigenschappen
| Name | Description |
|---|---|
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
| Value |
Hiermee wordt een waarde opgehaald die aangeeft of het COM-type zichtbaar is. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| GetHashCode() |
Retourneert de hash-code voor dit exemplaar. (Overgenomen van Attribute) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |