有没有办法从 MassTransit 发送原始消息?

时间:2021-02-08 17:11:04

标签: rabbitmq masstransit

我通过 Masstransit 向rabbitmq 交换“x”发送一些消息,如下所示:

var endpoint = await _bus.GetSendEndpoint(new Uri("exchange:x"));
var message = new CustomType {
  accountId = 1
};
await endpoint.Send(message);

我进入队列的事件如下:

{
  "messageId": "x",
  "conversationId": "x",
  "sourceAddress": "rabbitmq://localhost/x",
  "destinationAddress": "rabbitmq://localhost/x",
  "messageType": [
    "urn:message:x"
  ],
  "message": {
    "accountId": 1
  },
  "sentTime": "x",
  "headers": {
    "MT-Activity-Id": "x"
  },
  "host": {
    ...
  }
}

但我希望队列中的消息是这样的:

{
    "accountId": 1   
}

Masstransit 有没有办法将原始消息发送到队列?

1 个答案:

答案 0 :(得分:3)

您可以指定原始 JSON 消息序列化程序,使用:

cfg.UseRawJsonSerializer();

这将发送由 JSON.NET 序列化的消息。