ComVisibleAttribute Clase

Definición

Controla la accesibilidad a COM de un tipo o miembro administrado individual o de todos los tipos de un ensamblado.Controls accessibility of an individual managed type or member, or of all types within an assembly, to COM.

public ref class ComVisibleAttribute sealed : Attribute
[System.Runtime.InteropServices.ComVisible(true)]
[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
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 de COM de una clase para que sus miembros sean invisibles.The following example shows how you can control the visibility to COM of a class so that its members are invisible. Al establecer ComVisibleAttribute en false on MyProperty MyMethod false (en el Visual Basic ejemplo), y en y, puede evitar exponer accidentalmente los miembros a com a través de la herencia.SampleClass MyClassBy setting ComVisibleAttribute to false on MyClass(SampleClass in the Visual Basic example), and false on MyMethod and MyProperty, you can avoid inadvertently exposing the members to COM through inheritance.

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 los ensamblados, interfaces, clases, estructuras, delegados, enumeraciones, campos, métodos o propiedades.You can apply this attribute to assemblies, interfaces, classes, structures, delegates, enumerations, fields, methods, or properties.

El valor predeterminado truees, lo que indica que el tipo administrado es visible para com.The default is true, which indicates that the managed type is visible to COM. Este atributo no es necesario para que los tipos y ensamblados públicos administrados estén visibles; de forma predeterminada, son visibles para COM.This attribute is not needed to make public managed assemblies and types visible; they are visible to COM by default. Solo public se pueden hacer visibles los tipos.Only public types can be made visible. El atributo no se puede utilizar para hacer que internal un protected tipo o sea visible para com o para que los miembros de un tipo no visible sean visibles.The attribute cannot be used to make an otherwise internal or protected type visible to COM or to make members of a nonvisible type visible.

Al establecer el atributo false en en el ensamblado, public se ocultan todos los tipos dentro del ensamblado.Setting the attribute to false on the assembly hides all public types within the assembly. Puede hacer que los tipos del ensamblado sean visibles selectivamente estableciendo los tipos individuales trueen.You can selectively make types within the assembly visible by setting the individual types to true. Al establecer el atributo false en en un tipo específico, se oculta ese tipo y sus miembros.Setting the attribute to false on a specific type hides that type and its members. Sin embargo, no puede hacer que los miembros de un tipo sean visibles si el tipo es invisible.However, you cannot make members of a type visible if the type is invisible. Al establecer el atributo false en en un tipo, se impide que ese tipo se exporte a una biblioteca de tipos; las clases no se registran; QueryInterface las interfaces nunca responden a las llamadas no administradas.Setting the attribute to false on a type prevents that type from being exported to a type library; classes are not registered; interfaces are never responsive to unmanaged QueryInterface calls.

A menos que establezca explícitamente una clase y sus falsemiembros en, las clases heredadas pueden exponer a miembros de clase base com que no estén visibles en la clase original.Unless you explicitly set a class and its members to false, inherited classes can expose to COM base class members that are invisible in the original class. Por ejemplo, si establece ClassA en false y no aplica el atributo a sus miembros, la clase y sus miembros son invisibles para com.For example, if you set ClassA to false and do not apply the attribute to its members, the class and its members are invisible to COM. Sin embargo, si se deriva ClassB de ClassA y se exporta ClassB a COM, los miembros de clasea se convierten en miembros de clase base visibles de ClassB.However, if you derive ClassB from ClassA and export ClassB to COM, ClassA members become visible base class members of ClassB.

Para obtener una descripción detallada del proceso de exportación, vea Resumen de la conversión de ensamblados en bibliotecas de tipos.For a detailed description of the export process, see Assembly to Type Library Conversion Summary.

Constructores

ComVisibleAttribute(Boolean)

Inicializa una nueva instancia de la clase ComVisibleAttribute.Initializes a new instance of the ComVisibleAttribute class.

Propiedades

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Heredado de Attribute)
Value

Obtiene un valor que indica si el tipo COM es visible.Gets a value that indicates whether the COM type is visible.

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(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.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(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.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(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.Maps a set of names to a corresponding set of dispatch identifiers.

(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.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Heredado de Attribute)

Se aplica a

Consulte también: