c# - 将“非序列化”对象传递给另一个没有序列化/反序列化的应用程序域(C#)
问题描述
在没有序列化/反序列化的情况下将“非序列化”对象传递给另一个 appdomain 的最佳方法是什么?
更多细节:我将在新的 appdomain 中调用一个函数(来自外部程序集/插件)并将结果传递给主 appdomain(主程序)。但是(不幸的是)结果类型不可序列化,因此我遇到了 SerializationException
限制:
非序列化类型在外部程序集/dll 中。所以我不能用属性将它标记为可序列化。
解决方案
如果你想通过远程基础设施传递它,它必须是通过 ref 或可序列化的。
由于这种类型既不是你的选择有限:
- 在远程应用程序域中执行处理。
- 执行自定义序列化以传输您想要的数据(而不是对象)。例如,将值复制到可序列化的 DTO 类或使用序列化程序库。
推荐阅读
- jquery - preventDefault() 没有停止页面/表单重新加载
- angular - 如何将数字转换为单词。?例如 1 显示一个
- selenium-webdriver - 在 selenium 框架中确切使用的抽象类和接口
- java - 无法在 Spring Boot 应用程序中启动 tomcat
- python - Keras中训练模型的预测功能问题
- r - 当 x 轴值不相同时,如何使用使用 2 个不同数据框制作的公共 x 轴排列图形?
- python - 使用 paramiko over SSH 在交互式 CLI 上执行命令
- angular - 如何从远程 API 服务填充材料选择下拉列表?
- javascript - 以概率随机播放 JS 数组
- javascript - jQuery 事件处理程序是如何排队和执行的?