2017-08-09 3 views
1

このようなイベントを公開したときに、佐賀のヘッダーにアクセスする方法はありますか?masstransit sagaに公開されたイベントのヘッダーにアクセスする方法はありますか?

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

関連する問題