ComVisibleAttribute Třída

Definice

Řídí přístupnost jednotlivých spravovaných typů nebo členů nebo všech typů v rámci sestavení 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
Dědičnost
ComVisibleAttribute
Atributy

Příklady

Následující příklad ukazuje, jak můžete řídit viditelnost modelu COM třídy tak, aby její členy byly neviditelné. Nastavením na ComVisibleAttribute false MyClass(SampleClass v příkladu Visual Basic) a zapnutým a false MyProperty, MyMethod můžete se vyhnout neúmyslnému vystavení členů modelu COM prostřednictvím dědičnosti.

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

Poznámky

Tento atribut můžete použít na sestavení, rozhraní, třídy, struktury, delegáty, výčty, pole, metody nebo vlastnosti.

Výchozí hodnota je true, což značí, že spravovaný typ je viditelný pro com. Tento atribut není nutný k zobrazení veřejných spravovaných sestavení a typů; jsou ve výchozím nastavení viditelné pro com. Zviditelnit lze pouze public typy. Atribut nelze použít k zobrazení jiného internal typu nebo protected typu modelu COM nebo k tomu, aby byly členy nevisovatelného typu viditelné.

Nastavení atributu na false sestavení skryje všechny public typy v rámci sestavení. Typy v rámci sestavení můžete selektivně nastavit tak, že nastavíte jednotlivé typy na true. Nastavení atributu pro false určitý typ skryje tento typ a jeho členy. Pokud je však typ neviditelný, nemůžete členy typu zviditelnit. Nastavení atributu na false typ zabraňuje exportu daného typu do knihovny typů; třídy nejsou registrovány; rozhraní nikdy nereagují na nespravovaná QueryInterface volání.

Pokud explicitně nenastavíte třídu a její členy na false, zděděné třídy mohou vystavit členům základní třídy modelu COM, které jsou neviditelné v původní třídě. Pokud například nastavíte ClassA na false jeho členy a nepoužijete ho na jeho členy, třída a její členové jsou pro com neviditelné. Pokud však odvozujete TříduB z třídy ClassA a exportujete tříduB do modelu COM, členové TřídyA se stanou viditelnými členy základní třídy TřídyB.

Podrobný popis procesu exportu naleznete v části Sestavení se souhrnem převodu knihovny typů.

Konstruktory

ComVisibleAttribute(Boolean)

Inicializuje novou instanci ComVisibleAttribute třídy.

Vlastnosti

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)
Value

Získá hodnotu, která označuje, zda je typ modelu COM viditelný.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou odvozené třídy.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro

Viz také