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

saj*_*ari 1 masstransit rabbitmq

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

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

我在队列中收到的事件如下所示:

{
  "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": {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

但我希望队列中的消息如下:

{
    "accountId": 1   
}
Run Code Online (Sandbox Code Playgroud)

Masstransit 有什么方法可以将原始消息发送到队列吗?

Chr*_*son 5

您可以使用以下命令指定原始 JSON 消息序列化器:

cfg.UseRawJsonSerializer();
Run Code Online (Sandbox Code Playgroud)

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