Я работаю над созданием конвейера потока данных, который отвечает за асинхронную обработку запросов HttpRequest, отправленных в HttpListener
. Чтобы ответить на запрос, мне, возможно, придется выполнить некоторые трудоемкие операции, такие как анализ или извлечение больших объемов данных из базы данных, таким образом, подход потока данных. Я использую HttpListener.GetContextAsync
для передачи HttpListenerContext
в первый блок в конвейере, который затем обработает запрос и сгенерирует ответ.
Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно иметь исходный объект HttpListenerContext
, чтобы отправить ответ обратно клиенту. Моей первой мыслью было, что я могу просто передать объект через весь конвейер внутри кортежа, но это быстро начинает выглядеть и ощущаться очень беспорядочно.
В конечном счете, с точки зрения дизайна, я хотел бы иметь возможность передавать HttpListenerContext
в конвейер и в конце процесса получать ответ, который я затем могу выдать обратно без необходимости передавать объект через все это. Можно ли связать конечный результат конвейера с исходным объектом, который был в него отправлен?