Re: Странный дизайн aspnetcore и параметры scope
От: Ночной Смотрящий Россия  
Дата: 08.01.22 20:50
Оценка: 5 (1)
Здравствуйте, Слава, Вы писали:

С>Только вот когда я создаю этот scope, я не могу в него передать вообще ничего


У тебя явно какое то странное понимание того что такое scope. Это не какая то загадочная фигня, в которую можно что то там передать, а область жизни инстансов сервисов. Т.е. если сервис объявлен как scoped, то при создании нового scope попытка к нему обратится вызовет запуск фабрики по новой. Ну и время жизни стейта scoped сервиса будет совпадать с временем жизни scope.
При этом сам scope никак не отвечает за то, откуда какой то конкретный инстанс сервиса возьмет свой стейт. Это совершенно отдельная механика, которую ты волен реализовать так как тебе интересно, вне зависимости от того что там в service provider.

С>Мда. То есть, это как thread local, только в контексте async


Ты только что об этом узнал?

С>Мне одному кажется, что это какой-то несколько странноватый способ передачи контекста, через подобие thread local? А по-другому что, никак?


Все зависит от того что ты конкретно хочешь. Можешь, к примеру, просто сделать сервис, реализующий два интерфейса — один публичный, для чтения стейта, второй internal, для его изменения. Публикуешь этот сервис как scoped, в нужный момент инициализируешь из своей инфраструктуры стейт через internal интерфейс, в результате для внешних потребителей получаешь стейт ограниченный скоупом.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.