Для Silverlight существует модель расширения, которая называется Служба расширения приложений .
В инфраструктурных целях это может быть лучшей альтернативой, чем добавление свойств в класс вашего приложения и приведение App.Current
туда-сюда.
Недостатком этой модели является создание синглтона, который у вас будетинициализировать для ваших юнит-тестов.Это также скрыло бы зависимость от Users
в ваших потребляющих классах.
Ваши пользователи кажутся просто данными.Если вы сделаете эти данные окружающим контекстом, который может быть доступен и отредактирован повсюду в вашем приложении, вас укусит.Вы не знаете, кто что делает с этими данными и когда он это делает.Это похоже на состояние сеанса.
Таким образом, явная зависимость от ваших данных была бы первым шагом для отслеживания злоупотребления этими данными.
Если для вас имеет смысл создать«объект держателя данных», который имеет свойство для Users
или напрямую внедряет эти данные в ваших потребителей, остается за вами.Если данных больше, чем просто Users
, заманчиво поместить их все в один и тот же объект центрального хранилища данных, даже если они не нужны вашим конкретным потребителям.