微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在C#类中复制或深度克隆vb6 comm +代理对象?

如何解决如何在C#类中复制或深度克隆vb6 comm +代理对象?

我有内置于vb6 dll中的comm +对象,我正在尝试读取内置于vb6中的comm +代理对象以映射到c#类对象中(获取system._ComObject

在这里添加了vb6 dll来引用,vb6 dll是COM注册的,我能够使用object.property名称访问属性,但是我无法投射或克隆/ Map对象。

我正在获取system._ComObject作为值,我有许多接口,我能够通过创建类进行映射,但是对于许多接口而言,要从vb6接口中的c#应用程序中创建类变得越来越困难

如果有其他方法可以直接访问那些方法,那就更好了,有些方法可以查看对象的值而不是system._Comobject

理想情况下,我想对通讯和代理vb6对象使用无反射的deepclone吗?

解决方法

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

使用JSON作为中介的一种方法是:https://github.com/newren/git-filter-repo/issues/157

现在,大概是JSON序列化程序正在使用一些反射调用来检查对象并弄清楚如何序列化它们。这意味着您可以只重构逻辑的那一部分,以采用更“纯”的方法。 (或者也许有人已经这样做了。)

还请注意,我指向的答案提到必须使用正确的COM“代理”对象。因此,如果您进行更多调查,可能对 correct 对象使用类似https://stackoverflow.com/a/52412110/3195477的工具也可以。但是我还没有尝试过。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。