Как добавить пользовательскую полезную нагрузку в ConsumeContext?

97
5

Я пытаюсь добавить пользовательскую полезную нагрузку в 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);
}

полезная нагрузка всегда равна нулю. Могу ли я добавить свою полезную нагрузку cusom в контекст и как это сделать правильно? Благодарю.

спросил(а) 2016-10-07T11:29:00+03:00 3 года, 11 месяцев назад
1
Решение
80

Полезные значения, добавленные в ConsumeContext, действительны только для текущего сообщения и не являются постоянными. Они используются компонентами промежуточного программного обеспечения для сохранения данных и/или предоставления данных для компонентов или сервисов промежуточного программного обеспечения (таких как потребители, саги и т.д.), Которые потребляют сообщения.

Если вам нужно сохранить данные между сообщениями, подумайте об использовании саги, скоррелированной общим идентификатором, чтобы сообщения доставлялись в один и тот же экземпляр саги.

ответил(а) 2016-10-10T06:02:00+03:00 3 года, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема