или currentSession в десктоп приложении (wpf)?
к примеру у меня приложение на n-окон:
в первом юзер логинится (обращается к серверу)
во втором он что-то делает, не важно, к примеру вносит TODO итемы или чатится (опять же идёт к серверу)
есть также окно текущего пользователя, где он может поменять свой профиль (и снова к серверу)
и прч.
и всем нужно знать юзернейм каррент пользователя, его ID который ему выдался на этапе аутентификации, и прочее.
были мысли сделать что-то вроде static поля, или какой-то менеджер-синглтон где будет хранится тек. сессия, но что-то мне подсказывает что так не делают))
А что мешает просто прокидывать ссылку на обьект юзера? )
Синглтон было хорошей идеей
Ну во вьюмодель сложи, да и всё.
Выдели что-то типа контекста сессии с нужными данными, организуй лайфтайм скоуп сессии, зарегистрируй контекст в нем как синглтон и инжеть сразу в сервисы работающие с сервером через конструктор. Если ничего не понял - читать Симана.
Сделай нечто вроде ServiceLocator, можешь его объявить статическим (проще пользоваться) или прокидывать везде как контекст (проще тестировать). Пихать конкретно инфу о юзере в каждую VM имхо неудобно
Обсуждают сегодня