tipos - ¿Es posible implementar una interfaz COM con una clase de genéricos.NET?
que es una interfaz en programacion (1)
Los tipos y tipos genéricos que derivan de un tipo genérico no se pueden exportar. Establezca ComVisible(false)
en su tipo MyClass
. Tendrá que crear una implementación de clase no genérica o utilizar solo la interfaz.
Tengo la siguiente interfaz que estoy tratando de hacer visible a COM. Cuando trato de generar la biblioteca de tipos, no me gusta el hecho de que mi clase de implementación se deriva de una clase genérica.
¿Es posible usar una clase genérica como una clase de implementación COM? (Sé que podría escribir un contenedor no genérico y exportarlo a COM, pero esto agrega otra capa de la que preferiría prescindir).
[ComVisible(true)]
public interface IMyClass
{
...
}
[ComVisible(true), ComDefaultInterface(typeof(IMyClass))]
[ClassInterface(ClassInterfaceType.None)]
public class MyClass : BaseClass<IMyClass>, IMyClass
{
...
}
Mensaje de error:
Warning: Type library exporter encountered a type that derives from a generic class and is not marked as [ClassInterface(ClassInterfaceType.None)]. Class interfaces cannot be exposed for such types. Consider marking the type with [ClassInterface(ClassInterfaceType.None)] and exposing an explicit interface as the default interface to COM using the ComDefaultInterface attribute.