ComVisibleAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Řídí přístupnost jednotlivého spravovaného typu nebo člena 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
- Atributy
Příklady
Následující příklad ukazuje, jak můžete řídit viditelnost modelu COM třídy tak, aby její členy byly neviditelné.
ComVisibleAttribute
Nastavením na false
hodnotu on MyClass
(SampleClass
v příkladu jazyka Visual Basic) a false
na MyMethod
a MyProperty
můžete zabránit neúmyslnému zveřejnění č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 pro sestavení, rozhraní, třídy, struktury, delegáty, výčty, pole, metody, přístupové objekty událostí nebo vlastnosti.
Výchozí hodnota je true
, což označuje, že spravovaný typ je viditelný pro com. Tento atribut není potřeba k tomu, aby veřejná spravovaná sestavení a typy viditelné; jsou ve výchozím nastavení viditelné modelu COM. Viditelné můžou být jenom public
typy. Atribut nelze použít k zobrazení jiného internal
typu nebo protected
typu modelu COM nebo k tomu, aby byly viditelné členy neviditelného typu.
Nastavení atributu na false
u sestavení skryje všechny public
typy v rámci sestavení. Typy v rámci sestavení lze selektivně zviditelnit nastavením jednotlivých typů na true
hodnotu . Nastavení atributu na false
u konkrétního typu skryje tento typ a jeho členy. Nelze však nastavit členy typu jako viditelné, pokud je typ neviditelný. Nastavení atributu na false
u typu zabrání 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
, mohou zděděné třídy vystavit členům základní třídy modelu COM, které jsou v původní třídě neviditelné. Například pokud nastavíte ClassA na false
a nepoužijete atribut na jeho členy, třída a její členy jsou neviditelné pro com. Pokud však odvozujete ClassB z ClassA a exportujete ClassB do modelu COM, stanou se členy ClassA viditelnými členy základní třídy ClassB.
Podrobný popis procesu exportu najdete v tématu Souhrn převodu sestavení na typ knihovny.
Konstruktory
ComVisibleAttribute(Boolean) |
Inicializuje novou instanci |
Vlastnosti
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu . (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á z aktuální instance. (Zděděno od Object) |
IsDefaultAttribute() |
Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu. (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ří mělkou kopii aktuálního Objectsouboru . (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 pro 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) |