0

NServiceBus 2.0 是否允许为给定的消息类型定义序列化程序?

我希望使用 XmlSerializer 对除我的一条消息之外的所有消息进行序列化。其余的应使用 BinarySerializer 进行序列化。

NServiceBus 2.0 可以吗?

4

2 回答 2

1

我相信序列化程序是基于端点指定的,因此使用该端点的所有消息都将使用相同的序列化程序。

但是,如果您遵循每个端点/队列一种消息类型的死记硬背的 NServiceBus 建议,那么您可以有效地隔离一种消息类型并为其使用不同的序列化程序。

但是,我很好奇,需要二进制序列化的一种消息类型有什么特别之处?

编辑以回应评论

分销商信息在与分销商的路由下间接提到了这一点。Udi Dahan 也经常在NServiceBus 雅虎集团中提出这个建议,尽管因为那里的搜索很差,所以很难提供链接。

基本上,这个想法是您不希望高优先级的消息卡在低优先级的消息后面,并且这为您提供了最大的灵活性,可以在必要时扩展某些消息处理。

因为 MsmqTransportConfig 只允许指定一个 InputQueue,所以每个队列有一种消息类型也意味着每个端点只有一个消息处理程序。

要处理图像,如果将字节数组编码为 Base64 编码的字符串,您仍然可以将其封装在 XML 格式的消息中。这并不理想,但如果您的图像不是太大,这样做可能比只对一种消息类型使用不同的序列化程序更容易。

另一种选择是将图像数据带外存储在数据库或文件系统中,然后通过 ID 或路径(分别)引用它。

于 2010-05-17T14:14:36.170 回答
0

在版本 2 中不可能。但可以使用版本 5 及更高版本中的管道来完成http://docs.particular.net/samples/pipeline/multi-serializer/

于 2016-06-02T04:50:22.203 回答