У меня есть веб-api, который отправляет команды конечным точкам. Я создал сообщение мутатором, который добавляет настраиваемый заголовок с сериализованным экземпляром IAuthenticationInformation.Зарегистрировать экземпляр в конструкторе из поведения NServiceBus
Что мне нужно делать в принимающих конечных точках, это перехват этого заголовка (предположительно в Поведении), десериализуйте его в IAuthenticationInformation и зарегистрируйте его в дочернем контейнере, который будет строить обработчики для его возврата по запросу.
У меня есть все, чтобы зарегистрировать экземпляр в контейнере. Проблема заключается в том, что context.Builder не предоставляет никакой операции Регистрации. Как я могу это достичь?
Примечания:
- Я использую v6 (я нашел способ сделать это в v5 с использованием PipelineExecutor, но это, кажется, не работает больше).
- Я использую Unity, но я бы предпочел контейнерное независимое решение
- Эта проблема кажется мне очень распространенной, поскольку мне это нужно для нескольких других сценариев (т.е. регистрации единицы работы с данным db соединение), поэтому я не понимаю, почему так сложно найти решение. Должен ли я искать другой подход?
Это, кажется, хороший ответ на мой вопрос (хотя и не независимый от контейнера), поэтому я отмечаю его как ответ, но я не буду следовать этому подходу, потому что у меня есть другое предложение: зарегистрируйте зависимости со временем жизни блок работы и в вызове поведения Инициализируйте на них передачу данных из заголовка. Это лучший подход в этом случае, потому что мы не создаем зависимости от того, когда nsb создает экземпляры зависимостей, а также контейнера. Вы можете прочитать полный разговор здесь: https://groups.google.com/d/msg/particularsoftware/AprrsD3G7gM/Tkoh-SVOEQAJ –