我遇到以下问题:
D<T>
,它实现接口Ic并调用3. Exe的Ia和Ib的实现。D<E>
)在运行时发生以下情况:Exe加载Dll2(几个实例)并实例化E,为其提供指向其Ia和Ib指针的指针。 Exe从Dll2“获取”Ic指针。
现在,我必须允许在C#中实现Dll2(s),以便Exe可以调用Dll2的Ic impl。和Dll2可以回叫Exe的Ia和Ib i-faces。进一步限制,每次弹出新的Dll2实现时,我都不必重新编译Exe和Dll1。
是否有可能实现这样的目标?
答案 0 :(得分:5)
我认为你将不得不放弃继承,这在跨模块边界应用时已经是一个相当脆弱的工具。
我会指向COM。托管代码可以将其接口公开为COM对象,C ++可以使用它们。反之亦然。