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 qui est 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
AutoDispatch | 1 | Indique que la classe ne prend en charge que la liaison tardive pour des clients COM. Une Il s’agit d’un paramètre par défaut pour ClassInterfaceAttribute. |
AutoDual | 2 | Indique qu'une interface de classe double est automatiquement générée pour la classe et exposée à COM. Les informations de type sont générées pour l'interface de classe et publiées dans la bibliothèque de types. L'utilisation de |
None | 0 | Indique qu'aucune interface de classe n'est générée pour la classe. Si aucune interface n'est explicitement implémentée, la classe ne permet que l'accès par liaison tardive à l'aide de l'interface
Tlbexp.exe (Exportateur de bibliothèques de types) expose la première interface publique visible par COM implémentée par la classe en tant qu’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 (à partir de la dernière classe de base dérivée et fonctionnant en arrière). Tlbexp.exe expose |
Exemples
Cet exemple montre comment appliquer le ClassInterfaceAttribute à 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 .