2016-11-21 53 views
0

消息消息过程中有什么方法可以修改消息的中间件标题吗? 正如我所看到的ConsumeContext上的Headers接口不提供任何方式来设置标题,有没有其他方式来实现呢? 谢谢!修改消费中间件的消息标题

回答

0

在使用中间件进行消费时,您无法添加标头,但是,您可以将有效载荷添加到可在流水线中其他位置使用的上下文。

举例来说,如果你有一个AuthorizationContext情况下,你可以把它的中间件组件中增加了有效载荷:

public Task Send(ConsumeContext context, IPipe<ConsumeContext> next) 
{ 
    context.GetOrAddPayload(() => CreateAuthorizationContext()); 

    return next.Send(context); 
} 

之后,上下文的另一个组件或用户可以访问它:

public Task Consume(ConsumeContext<MyMessage> context) 
{ 
    var authorizationContext = context.GetPayload<AuthorizationContext>(); 

    if(authorizationContext.IsAdmin) 
     return UpdateSomething(context); 

    throw new NotAuthorizationException("Booo!"); 
}