ComVisibleAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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 |
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) |