ComVisibleAttribute Classe

Definizione

Controlla l'accessibilità di un singolo tipo gestito o un membro, oppure di tutti i tipi all'interno di un assembly, per COM.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
Ereditarietà
ComVisibleAttribute
Attributi

Esempi

Nell'esempio seguente viene illustrato come è possibile controllare la visibilità a COM di una classe in modo che i relativi membri siano invisibili.The following example shows how you can control the visibility to COM of a class so that its members are invisible. Impostando ComVisibleAttribute false MyMethod su on MyClass(SampleClass nell'esempio Visual Basic) e su eMyProperty, è possibile evitare di esporre inavvertitamente i membri a com attraverso l'ereditarietà. falseBy 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

Commenti

È possibile applicare questo attributo a assembly, interfacce, classi, strutture, delegati, enumerazioni, campi, metodi o proprietà.You can apply this attribute to assemblies, interfaces, classes, structures, delegates, enumerations, fields, methods, or properties.

Il valore predefinito trueè, che indica che il tipo gestito è visibile a com.The default is true, which indicates that the managed type is visible to COM. Questo attributo non è necessario per rendere visibili gli assembly e i tipi gestiti pubblici; sono visibili a COM per impostazione predefinita.This attribute is not needed to make public managed assemblies and types visible; they are visible to COM by default. È public possibile rendere visibili solo i tipi.Only public types can be made visible. L'attributo non può essere utilizzato per rendere un internal oggetto protected o un tipo visibile a com oppure per rendere visibili i membri di un tipo non visibile.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.

L'impostazione dell'attributo false su nell'assembly consente di nascondere public tutti i tipi all'interno dell'assembly.Setting the attribute to false on the assembly hides all public types within the assembly. È possibile impostare selettivamente i tipi all'interno dell'assembly in modo da renderli truevisibili impostando i singoli tipi su.You can selectively make types within the assembly visible by setting the individual types to true. Se si false imposta l'attributo su su un tipo specifico, questo tipo e i relativi membri vengono nascosti.Setting the attribute to false on a specific type hides that type and its members. Tuttavia, non è possibile rendere visibili i membri di un tipo se il tipo è invisibile.However, you cannot make members of a type visible if the type is invisible. Se si imposta l' false attributo su in un tipo, si impedisce che il tipo venga esportato in una libreria dei tipi. le classi non sono registrate. QueryInterface le interfacce non rispondono mai alle chiamate non gestite.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 meno che non si imposti in modo esplicito una falseclasse e i relativi membri su, le classi ereditate possono esporre ai membri della classe base com che sono invisibili nella classe originale.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. Se, ad esempio, si imposta ClassA false su e non si applica l'attributo ai relativi membri, la classe e i relativi membri non saranno visibili a 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. Tuttavia, se si derivano ClassB da ClassA e si esporta ClassB in COM, i membri di ClassA diventano visibili membri della classe base di ClassB.However, if you derive ClassB from ClassA and export ClassB to COM, ClassA members become visible base class members of ClassB.

Per una descrizione dettagliata del processo di esportazione, vedere Riepilogo della conversione da assembly a libreria dei tipi.For a detailed description of the export process, see Assembly to Type Library Conversion Summary.

Costruttori

ComVisibleAttribute(Boolean)

Inizializza una nuova istanza della classe ComVisibleAttribute.Initializes a new instance of the ComVisibleAttribute class.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Ereditato da Attribute)
Value

Ottiene un valore che indica se il tipo COM è visibile.Gets a value that indicates whether the COM type is visible.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Ereditato da Attribute)

Si applica a

Vedi anche