Наблюдаемый шаблон C # - Получить наблюдаемый (если доступен) при подписке - PullRequest
0 голосов
/ 24 октября 2018

TL; DR:

Я подписываюсь на мой Observable<User> после он нашел User, поэтому он вызывает OnNext(), когда никто не слушает (еще).Я хотел бы, чтобы можно было либо уведомлять о подписке, либо просить о подписке (наблюдатель наблюдает или наоборот)

Контекст:

У меня есть UserService, MessageService,MessageViewModel и DefaultMessageRequest.ViewModel использует сервис, сервис использует запрос, а userService немного "везде", так как большинство из них слушает его, когда новый пользователь найден.

Когда пользователь вышел из системы и, наконец,При входе в систему UserService уведомляет всех наблюдателей о том, что есть новый пользователь, и, таким образом, запускает различные вызовы, один из которых получает сообщение DefaultMessage.

Моя проблема заключается в том, что приложение имеет постоянство пользователя, что означает, что когдаиногда запускается, уже вошел в систему (токен действует достаточно долго), и поэтому, когда все подписываются, уже есть пользователь, и никто не знает об этом, потому что OnNext не запускается.Это приводит к некоторым проблемам, и мне нужна помощь, чтобы выяснить, кто должен действовать (наблюдатель? Наблюдаемый?), И как это сделать.

Мои вопросы:

  • Является ли роль Наблюдаемого уведомлять наблюдателя, когда он подписывается?Или каждый наблюдатель должен вручную спросить наблюдателя, есть ли там что-нибудь уже во время подписки?
  • Как мне решить мою проблему?У меня есть чувство, что я могу что-то изменить в своем методе Subscribe (), который поможет с этим, но я не смог найти что-то "дружественное к шаблону" в документах.
...