ClassInterfaceType Énumération
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.
Identifie le type d’interface de classe généré pour une classe.
public enum class ClassInterfaceType
public enum ClassInterfaceType
[System.Serializable]
public enum ClassInterfaceType
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum ClassInterfaceType
type ClassInterfaceType =
[<System.Serializable>]
type ClassInterfaceType =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ClassInterfaceType =
Public Enum ClassInterfaceType
- Héritage
- Attributs
Champs
| Nom | Valeur | Description |
|---|---|---|
| None | 0 | Indique qu’aucune interface de classe n’est générée pour la classe. Si aucune interface n’est implémentée explicitement, la classe ne peut fournir qu’un accès à liaison tardive via l’interface
Tlbexp.exe (Exporteur de bibliothèque de types) expose la première interface publique visible par COM implémentée par la classe comme interface par défaut de la coclasse. Dans .NET Framework 2.0 et versions ultérieures, vous pouvez spécifier l’interface par défaut exposée à COM à l’aide de l’attribut ComDefaultInterfaceAttribute. Si la classe n’implémente aucune interface, la première interface publique visible par COM implémentée par une classe de base devient l’interface par défaut (en commençant par la classe de base dérivée la plus récente et en arrière). Tlbexp.exe expose |
| AutoDispatch | 1 | Indique que la classe prend uniquement en charge la liaison tardive pour les clients COM. A Il s’agit du paramètre par défaut pour ClassInterfaceAttribute. |
| AutoDual | 2 | Indique qu’une interface double classe est générée automatiquement pour la classe et exposée à COM. Les informations de type sont produites pour l’interface de classe et publiées dans la bibliothèque de types. L’utilisation |
Exemples
Cet exemple montre comment appliquer le ClassInterfaceAttribute fichier à un type, en définissant le ClassInterfaceType. Les classes définies de cette façon peuvent être utilisées à partir de COM non managé.
using namespace System;
using namespace System::Runtime::InteropServices;
// Have the CLR expose a class interface (derived from IDispatch)
// for this type. COM clients can call the members of this
// class using the Invoke method from the IDispatch interface.
[ClassInterface(ClassInterfaceType::AutoDispatch)]
public ref class AClassUsableViaCOM
{
public:
AClassUsableViaCOM()
{
}
public:
int Add(int x, int y)
{
return x + y;
}
};
// The CLR does not expose a class interface for this type.
// COM clients can call the members of this class using
// the methods from the IComparable interface.
[ClassInterface(ClassInterfaceType::None)]
public ref class AnotherClassUsableViaCOM : public IComparable
{
public:
AnotherClassUsableViaCOM()
{
}
virtual int CompareTo(Object^ o) = IComparable::CompareTo
{
return 0;
}
};
using System;
using System.Runtime.InteropServices;
// Have the CLR expose a class interface (derived from IDispatch) for this type.
// COM clients can call the members of this class using the Invoke method from the IDispatch interface.
[ClassInterface(ClassInterfaceType.AutoDispatch)]
public class AClassUsableViaCOM
{
public AClassUsableViaCOM() { }
public Int32 Add(Int32 x, Int32 y) { return x + y; }
}
// The CLR does not expose a class interface for this type.
// COM clients can call the members of this class using the methods from the IComparable interface.
[ClassInterface(ClassInterfaceType.None)]
public class AnotherClassUsableViaCOM : IComparable
{
public AnotherClassUsableViaCOM() { }
Int32 IComparable.CompareTo(Object o) { return 0; }
}
Imports System.Runtime.InteropServices
' Have the CLR expose a class interface (derived from IDispatch) for this type.
' COM clients can call the members of this class using the Invoke method from the IDispatch interface.
<ClassInterface(ClassInterfaceType.AutoDispatch)> _
Public Class AClassUsableViaCOM
Public Sub New()
End Sub
Public Function Add(ByVal x As Int32, ByVal y As Int32) As Int32
Return x + y
End Function
End Class
' The CLR does not expose a class interface for this type.
' COM clients can call the members of this class using the methods from the IComparable interface.
<ClassInterface(ClassInterfaceType.None)> _
Public Class AnotherClassUsableViaCOM
Implements IComparable
Public Sub New()
End Sub
Function CompareTo(ByVal o As [Object]) As Int32 Implements IComparable.CompareTo
Return 0
End Function 'IComparable.CompareTo
End Class
Remarques
Cette énumération est utilisée conjointement avec l’attribut ClassInterfaceAttribute .