Можно ли создать глобальный контекст, доступный во всем веб-приложении, когда я получаю сообщение от Azure Service Bus? - PullRequest
0 голосов
/ 11 января 2019

У меня есть приложение веб-API, которое при запуске подписывается на тему в служебной шине Azure.

Когда я получаю сообщение от служебной шины, возможно ли установить контекст, аналогичный HttpContext, который доступен для всех методов приложения?

1 Ответ

0 голосов
/ 11 января 2019

Здесь недостаточно указать какое-либо точное направление, но, в общем, это просто сфера действия. Если то, что прослушивает сообщения, имеет «ограниченное» время жизни, то вы можете напрямую вставить свой контекст. Если, как более вероятно, он имеет единичное время жизни, вы должны вместо этого ввести IServiceProvider и получить свой контекст с помощью:

using (var scope = provider.CreateScope())
{
    var context = scope.ServiceProvider.GetRequiredService<MyContext>();

    // do something with context
}

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

...