ClassInterfaceType Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Identifica el tipo de interfaz de clase que se genera para una clase.
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
- Herencia
- Atributos
Campos
| Nombre | Valor | Description |
|---|---|---|
| None | 0 | Indica que no se genera ninguna interfaz de clase para la clase . Si no se implementa ninguna interfaz explícitamente, la clase solo puede proporcionar acceso enlazado en tiempo de ejecución a través de la
Tlbexp.exe (Exportador de biblioteca de tipos) expone la primera interfaz pública y visible para COM implementada por la clase como la interfaz predeterminada de la coclase. En .NET Framework 2.0 y versiones posteriores, puede especificar la interfaz predeterminada expuesta a COM mediante el atributo ComDefaultInterfaceAttribute. Si la clase no implementa ninguna interfaz, la primera interfaz pública y visible para COM implementada por una clase base se convierte en la interfaz predeterminada (empezando por la clase base derivada más recientemente y trabajando hacia atrás). Tlbexp.exe expone |
| AutoDispatch | 1 | Indica que la clase solo admite el enlace en tiempo de espera para los clientes COM. Para Esta es la configuración predeterminada para ClassInterfaceAttribute. |
| AutoDual | 2 | Indica que se genera automáticamente una interfaz de clase dual para la clase y se expone a COM. La información de tipo se genera para la interfaz de clase y se publica en la biblioteca de tipos. No |
Ejemplos
En este ejemplo se muestra cómo aplicar a ClassInterfaceAttribute un tipo , estableciendo .ClassInterfaceType Las clases definidas de esta manera se pueden usar desde COM no administrado.
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
Comentarios
Esta enumeración se usa junto con el ClassInterfaceAttribute atributo .