ComVisibleAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Contrôle l'accessibilité à COM d'un membre ou type managé spécifique, ou de tous les types dans un assembly.
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
- Héritage
- Attributs
Exemples
L’exemple suivant montre comment contrôler la visibilité sur COM d’une classe afin que ses membres soient invisibles. En définissant ComVisibleAttribute
false
sur on MyClass
(SampleClass
dans l’exemple Visual Basic), et false
sur MyMethod
et MyProperty
, vous pouvez éviter d’exposer par inadvertance les membres à COM via l’héritage.
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
Remarques
Vous pouvez appliquer cet attribut à des assemblys, des interfaces, des classes, des structures, des délégués, des énumérations, des champs, des méthodes, des accesseurs d’événements ou des propriétés.
La valeur par défaut est true
, ce qui indique que le type managé est visible par COM. Cet attribut n’est pas nécessaire pour rendre visibles les types et les assemblys managés publics ; ils sont visibles par COM par défaut. Seuls les public
types peuvent être rendus visibles. L’attribut ne peut pas être utilisé pour rendre un internal
autre type ou protected
un type visible pour COM ou pour rendre les membres d’un type non visibles.
La définition de l’attribut false
sur sur l’assembly masque tous les public
types au sein de l’assembly. Vous pouvez rendre les types visibles de manière sélective au sein de l’assembly en définissant les types individuels sur true
. La définition de l’attribut false
sur sur un type spécifique masque ce type et ses membres. Toutefois, vous ne pouvez pas rendre les membres d’un type visibles si le type est invisible. La définition de l’attribut false
sur sur un type empêche l’exportation de ce type vers une bibliothèque de types ; les classes ne sont pas inscrites ; les interfaces ne répondent jamais aux appels non managés QueryInterface
.
Sauf si vous définissez explicitement une classe et ses membres sur false
, les classes héritées peuvent exposer aux membres de la classe de base COM qui sont invisibles dans la classe d’origine. Par exemple, si vous définissez ClassA sur false
et que vous n’appliquez pas l’attribut à ses membres, la classe et ses membres sont invisibles pour COM. Toutefois, si vous dérivez ClassB de ClassA et exportez ClassB vers COM, les membres ClassA deviennent des membres de la classe de base visibles de ClassB.
Pour obtenir une description détaillée du processus d’exportation, consultez Résumé de la conversion de bibliothèque d’assembly en type.
Constructeurs
ComVisibleAttribute(Boolean) |
Initialise une nouvelle instance de la classe |
Propriétés
TypeId |
Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute. (Hérité de Attribute) |
Value |
Obtient une valeur indiquant si le type est visible par COM. |
Méthodes
Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
GetHashCode() |
Retourne le code de hachage de cette instance. (Hérité de Attribute) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute) |
Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute) |