ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute ComVisibleAttribute Class

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.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.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Delegate, Inherited=false)]
[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
ComVisibleAttributeComVisibleAttributeComVisibleAttributeComVisibleAttribute
Atributos

Ejemplos

El ejemplo siguiente muestra cómo puede controlar la visibilidad de COM de una clase para que sus miembros son invisibles.The following example shows how you can control the visibility to COM of a class so that its members are invisible. Estableciendo ComVisibleAttribute a false en MyClass(SampleClass en el ejemplo de Visual Basic), y false en MyMethod y MyProperty, puede evitar exponer por accidente los miembros a COM mediante herencia.By 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 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 es true, 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 hacer visible; los tipos y ensamblados administrados públicos son visibles para COM de forma predeterminada.This attribute is not needed to make public managed assemblies and types visible; they are visible to COM by default. Solo public tipos pueden hacerse visibles.Only public types can be made visible. El atributo no se puede usar para realizar un internal o protected tipo visible para COM o para hacer visibles los miembros de un tipo no visible.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.

Establecer el atributo como false en el ensamblado se ocultan todos public tipos dentro del ensamblado.Setting the attribute to false on the assembly hides all public types within the assembly. Puede selectivamente que tipos dentro del ensamblado sea visible al establecer los tipos individuales en true.You can selectively make types within the assembly visible by setting the individual types to true. Establecer el atributo como false 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 visible si el tipo es invisible.However, you cannot make members of a type visible if the type is invisible. Establecer el atributo como false en un tipo impide que ese tipo que se va a exportar a una biblioteca de tipos; clases no están registradas; interfaces nunca responden a no administrado QueryInterface llamadas.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 miembros para false, heredados pueden exponer clases a los miembros de clase base de 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 ClassA se establece en false y no aplica el atributo a sus miembros, la clase y sus miembros no están visibles 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 de ClassB de ClassA y se exporta a COM, los miembros de ClassA se conviertan 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, consulte ensamblado para el resumen de la conversión de tipo biblioteca.For a detailed description of the export process, see Assembly to Type Library Conversion Summary.

Constructores

ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean) ComVisibleAttribute(Boolean)

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

Propiedades

TypeId TypeId TypeId 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.

(Inherited from Attribute)
Value Value Value 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) Equals(Object) Equals(Object) 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.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() 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.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) 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.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _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.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _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.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _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).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _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.

(Inherited from Attribute)

Se aplica a

Consulte también: