ComVisibleAttribute Klas

Definitie

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
ComVisibleAttribute
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 ComVisibleAttribute klasse.

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)

Van toepassing op

Zie ook