【发布时间】:2018-11-12 12:13:11
【问题描述】:
我想订阅 MarshalByRefObject 上的一个事件,该事件位于一个单独的进程中。我试过了:
remoteObject.Progress += (sender, args) => { };
这会引发异常,因为 lambda 不可序列化:
System.Runtime.Serialization.SerializationException: 'Type '...+c__DisplayClass3_0' in Assembly '...' 未标记为可序列化。'
显然,我无法将此编译器生成的类型标记为[Serializable]。如何使用 Remoting 订阅事件?
【问题讨论】:
-
不如 lambda 优雅,但是创建一个包含目标方法的简单、可序列化的类怎么样?
-
@Alejandro 谢谢,我根据您的建议制定了一个解决方案。如果有人有更好的解决方案,我会全力以赴。