如何在c#类中复制或深度克隆vb6 comm+proxy对象



我在vb6 dll中构建了comm+对象,我试图做的是读取vb6中构建的comm+代理对象以映射到c#类对象中(获取system._ComObject(

我在这里添加了vb6 dll作为参考,vb6 dll是COM注册的,我可以用object.properties名称访问属性,但我不能强制转换或克隆/Map对象。

我得到了系统_ComObject作为值,我有很多接口,我可以通过创建类进行映射,但对于许多接口来说,从vb6接口在c#应用程序中创建类来映射变得越来越困难

如果有其他方法可以让我直接访问这些对象,那会更好,比如我可以如何查看对象的值,而不是system._Comobject

理想情况下,我想使用deepclone而不反射comm+proxy vb6对象?

我所知道的唯一方法是将VB6 COM对象序列化/反序列化为一个新对象。

使用JSON作为中介的一种方法是:https://stackoverflow.com/a/52412110/3195477

现在,假设JSON序列化程序正在使用一些反射调用来检查对象&弄清楚如何序列化它们。这意味着你可以重构逻辑的这一部分;纯";方法(或者可能有人已经这么做了(。

还要注意,我指出的答案提到必须使用正确的COM"代理"对象。因此,如果你进一步研究,在正确的对象上使用DeepCloner这样的工具也可以工作。但我还没试过。

相关内容

  • 没有找到相关文章

最新更新