当前位置:  开发笔记 > 编程语言 > 正文

如何将不同组件中的对象相互转换?

如何解决《如何将不同组件中的对象相互转换?》经验,为你挑选了1个好方法。

我遇到了这个显然并非罕见的问题 -

    我在Assembly A中有一个接口.

    我正在动态加载程序集B,并尝试将一个对象从程序集A中转换到我的接口中.

    它失败了InvalidCastException.

我已经明白了为什么 - 程序集A中的类和程序集B中的类,即使具有相同的名称和相同的代码,也不是相同的东西,不能相互强制转换.

我的问题是:有解决方案吗?有什么方法可以使这两种类型兼容,或者我是否需要在程序集B中复制我的接口并将对象转换为该接口?

我正在使用Assembly.LoadFrom加载程序集B - 是否有不同的方法可以使它们与类型兼容?

我不能成为第一个遇到这个问题的人.我想要做的事情似乎是插件架构相当普遍的任务.



1> Marc Gravell..:

复制不是答案.装配B可能会引用装配A并从那里消耗接口(或其他)吗?

如果没有,请声明程序集A和程序集B引用的独立dll中的接口(或其他).然后只有一个版本的界面,一切正常.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有