ComVisibleAttribute Classe
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Controla a acessibilidade de um tipo gerenciado individual ou membro, ou então de todos os tipos em um assembly, ao 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
- Herança
- Atributos
O exemplo a seguir mostra como você pode controlar a visibilidade para COM de uma classe para que seus membros sejam invisíveis. Ao definir ComVisibleAttribute
como false
em MyClass
(SampleClass
no exemplo do Visual Basic) e false
em MyMethod
e MyProperty
, você pode evitar expor inadvertidamente os membros ao COM por meio da herança.
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
Você pode aplicar esse atributo a assemblies, interfaces, classes, estruturas, delegados, enumerações, campos, métodos, acessadores de eventos ou propriedades.
O padrão é true
, que indica que o tipo gerenciado está visível para COM. Esse atributo não é necessário para tornar visíveis assemblies e tipos gerenciados públicos; eles são visíveis para COM por padrão. Somente public
os tipos podem ficar visíveis. O atributo não pode ser usado para tornar um tipo ou de protected
outra forma internal
visível para COM ou para tornar os membros de um tipo não visual visível.
Definir o atributo como false
no assembly oculta todos os public
tipos dentro do assembly. Você pode tornar seletivamente os tipos dentro do assembly visíveis definindo os tipos individuais como true
. Definir o atributo como false
em um tipo específico oculta esse tipo e seus membros. No entanto, você não poderá tornar os membros de um tipo visíveis se o tipo for invisível. Definir o atributo false
como em um tipo impede que esse tipo seja exportado para uma biblioteca de tipos; as classes não são registradas; as interfaces nunca respondem a chamadas não gerenciadas QueryInterface
.
A menos que você defina explicitamente uma classe e seus membros como false
, as classes herdadas podem expor aos membros da classe base COM que são invisíveis na classe original. Por exemplo, se você definir ClassA false
como e não aplicar o atributo a seus membros, a classe e seus membros serão invisíveis para COM. No entanto, se você derivar ClassB de ClassA e exportar ClassB para COM, os membros da Classe A se tornarão membros visíveis da classe base de ClassB.
Para obter uma descrição detalhada do processo de exportação, consulte Resumo da conversão de assembly para biblioteca de tipos.
Com |
Inicializa uma nova instância da classe |
Type |
Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute) |
Value |
Obtém um valor que indica se o tipo COM está visível. |
Equals(Object) |
Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
Get |
Retorna o código hash para a instância. (Herdado de Attribute) |
Get |
Obtém o Type da instância atual. (Herdado de Object) |
Is |
Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
Match(Object) |
Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
Memberwise |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
To |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
_Attribute. |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de Attribute) |
_Attribute. |
Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute) |
_Attribute. |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
_Attribute. |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |
Produto | Versões |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: