Как добавить пользовательские данные в ConsumeContext?
Я пытаюсь добавить пользовательскую полезную нагрузку в ConsumeContext, как это
public Task Consume(ConsumeContext<Message1> context)
{
context.GetOrAddPayload(() => new Payload());
return context.Publish(new Message2());
}
И ожидайте получить эту полезную нагрузку в Message2 потребителя. Но нет такой полезной нагрузки в контексте;
public Task Consume(ConsumeContext<Message2> context)
{
Payload payload;
context.TryGetPayload<Payload>(out payload);
}
полезная нагрузка всегда нулевая. Так могу ли я добавить свою полезную нагрузку в контекст и как это сделать правильно? Благодарю.
1 ответ
Полезные нагрузки добавлены к ConsumeContext
действительны только для текущего сообщения и не являются постоянными. Они используются компонентами промежуточного программного обеспечения для сохранения данных и / или предоставления данных для нижестоящих компонентов или сервисов промежуточного программного обеспечения (таких как потребители, саги и т. Д.), Которые потребляют сообщения.
Если вам нужно сохранить данные между сообщениями, рассмотрите возможность использования саги, коррелированной с общим идентификатором, чтобы сообщения доставлялись в один и тот же экземпляр саги.