当尝试解决我无法使用 Rebus 通过 RabbitMQ 接收消息的问题时,我尝试使用此示例:https://github.com/rebus-org/RebusSamples/tree/master/PubSubNative 并发现该对象,从发布者(pub)发布到订阅者(subs)的消息,对于 subs 和 pub 来说必须是完全相同的共享对象“StringMessage”。当我在每个项目中创建具有相同名称和属性的类时,它不起作用。我喜欢它没有共享文件,但有自己的类 - 如果可能的话?
是的,这是可能的,但您必须绕过接收端的反序列化,以某种方式解析接收者对
StringMessage
的定义,即使是发送者的 StringMessage
已序列化。
您可能想查看 SharedNothing 示例,它演示了这个特定的事情。
CustomMessageDeserializer
,它使用这个字典从简单的、程序集限定的类型名称映射到所需的类型。