无法转换 System.Runtime.Remoting.ObjectHandle

2023-11-25

在我的代码中我有一个接口 - 可以说它被称为InterfaceName及其实现称为InterfaceImpl。现在,当我动态尝试获取InterfaceImpl使用以下代码:

object obj = Activator.CreateInstance("ProjectName","ProjectName.Folder.InterfaceImpl");
InterfaceName in = (InterfaceName)obj; //Error pops up here

我收到以下错误

Unable to cast object of type 'System.Runtime.Remoting.ObjectHandle' to type 'ProjectName.Folder.InterfaceName'.

对于可能出现的问题有什么建议吗?


如果您阅读有关您正在调用的方法的文档,它返回

必须解开包装才能访问新创建的实例的句柄。

查看文档ObjectHandle,你只需调用Unwrap()为了获取您尝试创建的类型的实例。

所以,我想你真正的问题是......为什么?

该方法被设计为在另一个中调用AppDomain,并且句柄返回给调用者AppDomain,其中实例的代理是“解包的”。

什么?这还不能解释为什么吗?

只有两种类型可以交叉AppDomain障碍。可序列化的类型(创建其副本)和扩展的类型MarshalByRefObject(其中proxies创建并通过)。ObjectHandle延伸MarshalByRefObject,所以可以跨越AppDomain屏障,而它们所代表的类型可能不会扩展 MBROor可序列化。无论如何,此方法确保您可以跨越障碍获取该类型实例。

因此,如果您只是尝试实例化一个类型,您可能需要查看 CreateInstance 的不同重载。或者只是打开结果。

var obj = Activator.CreateInstance("A","A.B.C") as ObjectHandle;
InterfaceName in = (InterfaceName)obj.Unwrap(); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法转换 System.Runtime.Remoting.ObjectHandle 的相关文章

随机推荐

  • Angular - POST 上传的文件

    我在用着Angular 打字稿将文件与 JSON 数据一起发送到服务器 下面是我的代码 import Component View NgFor FORM DIRECTIVES FormBuilder ControlGroup from an
  • Python:在“exec”环境中奇怪的“NameError:名称...未定义”

    我有信心至少对 Python 的作用域系统有一些基本的了解 现在我收到一个错误 不幸的是到目前为止我什至无法编写一个好的代码片段来进行复制 我尝试在一个新的小项目中重现它 但一切都按我的预期进行 我只能描述我所做的事情 希望有人能发现一种模
  • 是否可以在运行时将参数传递给 python 生成的 exe?

    我正在尝试文件 I O 我有一个小型练习程序 运行时会创建一个文本文件 我用 pyinstaller 打包它 这样双击 exe 就会创建一个新文件夹 并在其中放置一个带有 hello world 的文本文件 十分简单 然后我开始想知道mai
  • 如何使用 Boost Asio 减少编译时间

    Boost Asio 是一个很棒的库 但它有一个巨大的缺点 编译时间极慢 一个HTTP协议的简单实现 真的很简单 大约1k行代码 在GCC 4 4下编译需要大约13 5s 我尝试使用 PCH 但它并没有太多地改善编译时间 大约仅 1 秒 那
  • azure api-apps、logic-apps、web-apps 和 azure function 之间的区别

    azure API 应用程序 逻辑应用程序 Web 应用程序和 azure 函数之间有什么区别 这对开发者来说有什么不同 逻辑应用程序 逻辑应用提供了一种在云中简化和实施可扩展集成和工作流程的方法 它提供了一个可视化设计器 可以将流程建模并
  • 将选项传递给 ES6 模块导入

    是否可以将选项传递给 ES6 导入 这句话怎么翻译 var x require module someoptions to ES6 没有办法用一个单一的方法来做到这一点import声明 它不允许调用 所以你不会直接调用它 但你基本上可以做与
  • 在 Postgres 中聚合多个字段时填充缺失的行

    我每天使用 Postgres 汇总一组产品的销售额 不仅需要知道何时发生销售 还需要知道何时不发生销售以进行进一步处理 SELECT sd date COUNT sd sale id AS sales sd product FROM sal
  • 在 OpenCV 中写入 AVI 文件

    网上有示例 Learn OpenCv O reilly 中给出了代码 经过多次尝试后 out avi 文件写入了 0 字节 我想知道我哪里出错了 以下是我使用的代码 int main int argc char argv CvCapture
  • 在 XML 中找不到未封闭的元素

    我有一个很大的 XML 文件 18MB 显然其中有一个标签未关闭 我知道这一点是因为当我运行 W3C 标记验证工具 validator w3 org 时 出现以下错误 You may have neglected to close an e
  • 透明 ARGB 十六进制值

    中的颜色this表全部不透明 我猜的价值A被设定为FF 透明度的代码是什么 例如这个颜色FFF0F8FF AliceBlue 为透明代码如 F0F8FF 以下是 到十六进制值的表格 Example 对于 85 的白色 您可以使用 D9FFF
  • 如何使用 jquery 同位素按日期排序(新)

    请原谅我 因为我对 JS 有点新手 只知道足够的操作 对于那些熟悉同位素的人来说 http isotope metafizzy co docs sorting html 我在页面顶部有一个按日期排序的按钮 同位素找到元素 span clas
  • Javascript 非阻塞脚本,为什么不简单地将所有脚本放在 标记之前?

    为了避免 javascript 阻塞网页渲染 我们是否可以将所有 JS 文件 代码放在关闭之前加载 执行 tag 所有的 JS 文件和代码只有在整个页面渲染完成后才会下载并执行 所以需要像这篇文章中建议的技巧吗 非阻塞技术加载JS文件 他基
  • Yup 模式中的可选字段验证

    我在用着react hook form with yup用于我的表单验证并希望某些字段是可选的 空 按照他们的文档 我正在使用nullable and optional 但它仍在得到验证 export const updateAddress
  • 如何在单击按钮时从一个视图控制器导航到另一个视图控制器?

    我是 iOS 应用程序开发新手 请帮助我如何从一开始view controller到另一个view controller单击按钮时 按照以下步骤 让按钮选择器为 button addTarget select action selector
  • Android Auto - 语音 - 无法执行“在 [y] 上播放 [x]”

    我在使用 在 app 上播放 歌曲 命令时遇到问题 具体来说 Android Auto 无法识别 应用程序 我收到一条音频语音消息 不知道如何帮助在应用程序上播放歌曲 因此 语音识别工作正常 正如我所说的歌曲和应用程序一样 但是与应用程序的
  • 无法使用 OpenMPI 安装 mpi4py:无法编译 MPI 程序

    这是我在这里发表的第一篇文章 如果我的风格有误 请道歉 我一直在尝试使用 python 3 6 在 Ubuntu 16 04 上安装 mpi4py 因为 SU2 需要它进行并行处理 我下载了mpi4py并尝试从源代码构建 因为我想使用我配置
  • 如何配置 Jenkins 以在工作区中显示我的日志?

    我正在使用 Jenkins 进行 CI 并且希望能够公开日志 这样我们就不必通过 telnet 到 CI 框来查看发生了什么 有一个插件可以做到这一点吗 或者我只需要写一个脚本 我的答案是关于读取应用程序服务器 容器日志文件不同的盒子比詹金
  • Vue方法滚动div到顶部

    我在学习vue 我有以下方法 将聊天消息添加到 div 中id toolbar chat 这个 div 允许在 y 轴上滚动 我希望每次添加新消息时 div 都能跳到顶部 为什么我的 JS 不起作用 document getElementB
  • iOS 5 应用程序中对 iOS 6 功能的有条件支持

    如何在应用程序中支持 iOS6 的功能Minimal Deployment Target设置为iOS 5 0 例如 如果用户拥有 iOS 5 他将看到一个UIActionSheet 如果用户有 iOS 6 他会看到不同的UIActionSh
  • 无法转换 System.Runtime.Remoting.ObjectHandle

    在我的代码中我有一个接口 可以说它被称为InterfaceName及其实现称为InterfaceImpl 现在 当我动态尝试获取InterfaceImpl使用以下代码 object obj Activator CreateInstance