我正在将MassTransit v.5 *与Rabbit MQ一起使用,并且正在像http://masstransit-project.com/MassTransit/usage/request-response.html中那样进行正常的请求-响应。
我正在像这样的消费者中在响应消息上设置标头
await context.RespondAsync<OrderStatusResult>(
new
{
OrderId = order.Id,
Timestamp = order.Timestamp,
StatusCode = order.StatusCode,
StatusText = order.StatusText
}
, callback => callback.Headers.Set("key", "value"))
我看到此标头是通过查看RabbitMQ设置的,但是在调用者端,我无法访问这些标头。
那么,如何在呼叫者端访问响应消息的标题?
谢谢!
答案 0 :(得分:1)
使用新的请求客户端,而不是原始的客户端,您可以通过响应访问消息上下文。
var client = Bus.CreateRequestClient<GetOrderStatus>(ServiceAddress);
var request = new GetOrderStatus(...);
var response = await client.GetResponse<OrderStatusResult>(request);
// response is type Response<OrderStatusResult>
var headerValue = response.Headers.Get...("key")