Ist es möglich, eine COM-Schnittstelle mit einer .NET-Generika-Klasse zu implementieren?
Ich habe die folgende Schnittstelle, die ich versuche, COM-sichtbar zu machen. Wenn ich versuche, die Typbibliothek zu generieren, mag es nicht, dass meine Implementierungsklasse von einer generischen Klasse abgeleitet ist.
Ist es möglich, eine generische Klasse als COM-Implementierungsklasse zu verwenden? (Ich weiß, ich könnte einen nicht generischen Wrapper schreiben und diesen nach COM exportieren, aber dies fügt eine weitere Ebene hinzu, auf die ich lieber verzichten möchte.)
[ComVisible(true)]
public interface IMyClass
{
...
}
[ComVisible(true), ComDefaultInterface(typeof(IMyClass))]
[ClassInterface(ClassInterfaceType.None)]
public class MyClass : BaseClass<IMyClass>, IMyClass
{
...
}
Fehlermeldung:
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.