2016-11-21 1 views
0

Есть ли способ изменить заголовки сообщений в промежуточном программном обеспечении во время сообщения? Как я вижу, интерфейс заголовков в ConsumeContext не предоставляет какой-либо возможности для установки заголовка, есть ли другой способ достичь этого? Спасибо!Изменить заголовок сообщения на потребляющем промежуточном программном обеспечении

ответ

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!"); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^