ComVisibleAttribute Clase

Definición

Controla la accesibilidad a COM de un tipo o miembro administrado individual, o de todos los tipos que están dentro de un ensamblado.

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
Herencia
ComVisibleAttribute
Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo puede controlar la visibilidad a COM de una clase para que sus miembros sean invisibles. Al establecer ComVisibleAttribute en false activado MyClass(SampleClass en el Visual Basic ejemplo) y en MyMethod y false MyProperty, puede evitar exponer accidentalmente los miembros a COM a través de la herencia.

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

Comentarios

Puede aplicar este atributo a ensamblados, interfaces, clases, estructuras, delegados, enumeraciones, campos, métodos o propiedades.

El valor predeterminado es true, que indica que el tipo administrado es visible para COM. Este atributo no es necesario para que los tipos y ensamblados administrados públicos sean visibles; son visibles para COM de forma predeterminada. Solo public se pueden hacer visibles los tipos. El atributo no se puede usar para hacer que un tipo de otro tipo internal o protected sea visible para COM o para hacer visibles los miembros de un tipo no visible.

Al establecer el atributo false en en el ensamblado, se ocultan todos los public tipos del ensamblado. Puede hacer que los tipos dentro del ensamblado sean visibles de forma selectiva estableciendo los tipos trueindividuales en . Al establecer el atributo false en en un tipo específico, se oculta ese tipo y sus miembros. Sin embargo, no puede hacer que los miembros de un tipo sean visibles si el tipo es invisible. Establecer el atributo false en en un tipo impide que ese tipo se exporte a una biblioteca de tipos; las clases no están registradas; las interfaces nunca responden a llamadas no administradas QueryInterface .

A menos que establezca explícitamente una clase y sus miembros falseen , las clases heredadas pueden exponerse a miembros de clase base COM que son invisibles en la clase original. Por ejemplo, si establece ClassA false en y no aplica el atributo a sus miembros, la clase y sus miembros son invisibles para COM. Sin embargo, si deriva ClassB de ClassA y exporta ClassB a COM, los miembros classA se convierten en miembros de clase base visibles de ClassB.

Para obtener una descripción detallada del proceso de exportación, vea Resumen de conversión de ensamblado a biblioteca de tipos.

Constructores

ComVisibleAttribute(Boolean)

Inicializa una nueva instancia de la clase ComVisibleAttribute.

Propiedades

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)
Value

Obtiene un valor que indica si el tipo COM es visible.

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también