我有从本机 dll 导出的不同类。导出的类继承自多个纯抽象类(接口)。dll 的不同之处在于它们导出的具体类可能继承自不同的抽象类。本机 dll 使用 C++/CLI 包装器中的 LoadLibrary 动态加载。有没有办法可以在dll中公开具体本机类的类层次结构(继承关系)。这样我就可以将该类用作.NET 中的不同接口。
本机接口
class PrimaryAbstractClass
{
virtual void PrimaryMethod() = 0;
};
class SecondaryAbstractClass1
{
virtual void Method1() = 0;
};
class SecondaryAbstractClass2
{
virtual void Method2() = 0;
};
DLL 1
class ConcreteClass1: public PrimaryAbstractClass, public SecondaryAbstractClass1
{
virtual void PrimaryMethod();
virtual void Method1();
};
DLL 2
class ConcreteClass2: public PrimaryAbstractClass, public SecondaryAbstractClass2
{
virtual void PrimaryMethod();
virtual void Method2();
};
预期的 C# 用法(伪代码)
PrimaryAbstractClassWrapper pacw = new Dll1.PrimaryAbstractClassWrapper();
((SecondaryAbstractClass2)pacw).Method2();