ComVisibleAttribute Osztály

Definíció

Az egyes felügyelt típusok vagy tagok, illetve a szerelvényen belüli összes típus akadálymentességét szabályozza a COM-nak.

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
Öröklődés
ComVisibleAttribute
Attribútumok

Példák

Az alábbi példa bemutatja, hogyan szabályozható egy osztály COM-jának láthatósága, hogy tagjai láthatatlanok legyenek. A ComVisibleAttribute beállításával falseMyClass(SampleClass a Visual Basic példában), és falseMyMethod és MyProperty, elkerülheti, hogy véletlenül kitehesse a tagokat a COM-nak öröklés útján.

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

Megjegyzések

Ezt az attribútumot szerelvényekre, interfészekre, osztályokra, struktúrákra, meghatalmazottakra, enumerálásokra, mezőkre, metódusokra, eseménykiegészítőkre vagy tulajdonságokra alkalmazhatja.

Az alapértelmezett érték az true, amely azt jelzi, hogy a felügyelt típus látható a COM számára. Ez az attribútum nem szükséges a nyilvánosan felügyelt szerelvények és típusok láthatóvá tétele érdekében; alapértelmezés szerint láthatók a COM számára. Csak public a típusok tehetők láthatóvá. Az attribútum nem használható arra, hogy másként internal vagy protected típusként láthatóvá tegye a COM-t, vagy hogy láthatóvá tegye a nem látható típusú tagokat.

Ha az attribútumot false a szerelvényre állítja, az a szerelvényen belüli összes public típust elrejti. Az egyes típusok beállításával szelektíven láthatóvá teheti a szerelvényen belüli típusokat true. Ha az attribútumot egy adott típusra false állítja, az elrejti az adott típust és annak tagjait. Ha azonban a típus láthatatlan, nem teheti láthatóvá a típus tagjait. Az attribútum típusra állítása false megakadályozza, hogy a típust típustárba exportálja; az osztályok nincsenek regisztrálva; a felületek soha nem reagálnak a nem felügyelt QueryInterface hívásokra.

Ha nem állít be kifejezetten egy osztályt és annak tagjait false, az örökölt osztályok az eredeti osztályban láthatatlan COM-alaposztálytagok számára is elérhetővé tehetők. Ha például a ClassA értéket állítja false be, és nem alkalmazza az attribútumot a tagokra, akkor az osztály és tagjai a COM számára láthatatlanok. Ha azonban a ClassB-t a ClassA-ból származtatja, és a ClassB-t COM-ba exportálja, a ClassA-tagok a ClassB látható alaposztálytagjává válnak.

Az exportálási folyamat részletes leírását a Kódtár konvertálási összegzése című cikkben találja.

Konstruktorok

Name Description
ComVisibleAttribute(Boolean)

Inicializálja a ComVisibleAttribute osztály új példányát.

Tulajdonságok

Name Description
TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)
Value

Olyan értéket kap, amely jelzi, hogy a COM-típus látható-e.

Metódusok

Name Description
Equals(Object)

Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal.

(Öröklődés forrása Attribute)
GetHashCode()

A példány kivonatkódját adja vissza.

(Öröklődés forrása Attribute)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes:

Lásd még