在不进行序列化/反序列化(C#)的情况下将“非序列化”对象传递给另一个appdomain

时间:2019-05-09 08:40:36

标签: c# serialization deserialization appdomain marshalbyrefobject

将“非序列化”对象传递给另一个应用程序域没有进行序列化/反序列化的最佳方法是什么?

更多详细信息:我将在新的appdomain中调用一个函数(从外部程序集/插件),并将结果传递给主appdomain(主程序)。但是(不幸的是)结果类型不可序列化,因此我面临着SerializationException

限制:

非序列化类型在外部Assembly / dll中。因此,我无法将其标记为可序列化的属性。

1 个答案:

答案 0 :(得分:1)

如果要通过远程处理基础结构传递它,则必须通过ref或可序列化。

由于这种类型都不是,因此您的选择有限:

  1. 在远程应用程序域中执行处理。
  2. 执行自定义序列化以传输所需的数据(不是对象)。例如,将值复制到可序列化的DTO类或使用序列化程序库。