Silverlight и состояние приложения - PullRequest
4 голосов
/ 09 ноября 2010

У меня есть приложение Silverlight, которое всегда должно знать, какой клиент (объект домена) загружен в данный момент.За один раз может быть загружен только один.Если Клиент является нулевым, в данный момент Клиент не загружен.Или вы вышли из клиента.У меня будет еще 3 свойства типа состояния, например Customer.Итак ...

Каков наилучший способ сохранить состояние приложения в приложении Silverlight?

1) добавить общедоступные свойства в класс App (App.xaml.cs)
2) иметь объект состояния, который вы можете создать как одиночный объект через контейнер IoC.добавить публичные свойства к этому объекту 3) есть еще идеи?

Ответы [ 3 ]

1 голос
/ 10 ноября 2010

Я бы выбрал второй вариант.

В настоящее время работает над приложением Silverlight, в котором хранятся данные о состоянии объектов домена.

У нас есть то, что называется ApplicationManager, который разрешается через IoCхранить справочные данные и данные домена.Возможно, этот термин лучше, чем ApplicationManager, но на сегодняшний день не найдено стандартного соглашения об именах.

Концепция работает хорошо, все наши модели представлений имеют доступ к ApplicationManager, поэтому все, что мы передаем, это идентификаторы сущностейкогда другая часть приложения должна предпринять действия.

Если у вас есть асинхронные операции по обновлению данных, вам следует помнить о том, чтобы интерфейс и хранилище данных были согласованными

1 голос
/ 10 ноября 2010

У меня была похожая проблема.Поскольку я использую MEF, я создал сервис, который хранит данные.Вы можете импортировать сервис там, где он вам нужен, и иметь доступ к указанным объектам.(Так похоже на 2)

1 голос
/ 10 ноября 2010

Мой голос был бы за ваш второй вариант, чтобы иметь одноэлементный объект состояния.Если вы используете MVVM и Silverlight Toolkit, то вы бы встроили его прямо в свой MainViewModel, который статически и статически инициализирован в ViewModelLocator.Это было бы идеальным местом для достижения желаемого результата.

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