2017-08-09 30 views
1

当我发布这样的事件时,有没有什么办法可以在saga中访问标题?有什么方法可以在masstransit传奇中访问已发布事件的标题?

await busControl.Publish<IOrderCreated>(new 
     { 
      OrderId = dto.Id 
     }, context => 
     { 
      context.Headers.Set(LogConstansts.Common.OperationId,Guid.Parse(values.Single()).ToString()); 
      context.Headers.Set(LogConstansts.QueueMessageHeaderNames.Publisher, Request.RequestUri.AbsoluteUri); 
     }); 

,然后在佐贺

Initially(
      When(OrderCreated) 
      .Then(context => 
        { 
        //get headers somehow? 
        context.Instance.OrderId = context.Data.OrderId; 
        }) 

回答

2

是的,你可以从行为上下文获取的消费背景下的有效载荷访问:

Initially(
    When(OrderCreated) 
     .Then(context => 
     { 
      ConsumeContext<IOrderCreated> c; 
      if (context.TryGetPayload(out c)) 
      { 
       c.Headers.Get<string>("myheader"); 
       // do something 
      } 
      context.Instance.OrderId = context.Data.OrderId; 
     }) 
+0

感谢@Alexey Zimarev! – TjDillashaw

相关问题