asp. net Срок службы ядра 3.1 и наблюдаемые описания в Signalrhub - PullRequest
0 голосов
/ 03 августа 2020

Я думаю, я немного заблудился: у меня есть узел сигнализации, который получает услугу с ограниченным объемом («подписка-услуга»), вводимая через DI. Эта услуга "подписка-служба" получает введенный hubxontext и дополнительные "заданные" доменом c услуги и пытается подписаться на различные наблюдаемые c, определяемые доменом, которые эти услуги предоставляют. В отдельных обратных вызовах из наблюдаемых я хочу вызывать методы в контексте концентратора, чтобы иметь возможность уведомлять клиента, когда операции CRUD были выполнены.

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

В моем Startup.cs Я настроил все свои службы как "ограниченные":

services.AddScoped<IMaterialTypeService, MaterialTypeService>();
services.AddScoped<IMaterialTypeRepository, MaterialTypeDbRepository>();
services.AddScoped<WebApiSubscriptionService>();
services.AddScoped<IEmailService, EmailService>();
services.AddScoped<INotificationService, NotificationService>();

Метод подключения вверх подписки (в «подписке-сервисе») выглядит следующим образом:

 private void Startup()
        {
            _notificationService.Notifications.Subscribe(notification =>
            {
                _hubContext.Clients.All.Notify(notification);
            });

            _materialTypeService.MaterialTypesChanged.Subscribe(materialTypes =>
            {
                var matTypes = _mapper.Map<IList<MaterialTypeResponseDto>>(materialTypes);
                _hubContext.Clients.All.MaterialTypesChanged(matTypes);
            });
        }

Что мне здесь не хватает?

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

Моя конструкция такова, что я хочу иметь n доменных служб, и когда что-то происходит (CRUD) внутри любой из доменных служб, я хочу их to pu sh - сообщение Observable, если упомянутая выше служба подписки может подписаться на этот Observable, а в обратном вызове pu sh сообщение через signalr.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...