Как сделать уровень доступа к данным осведомленным о текущем состоянии приложения? - PullRequest
0 голосов
/ 25 октября 2011

Существует ли способ, при котором классы доступа к данным внутри репозитория обновляются всякий раз, когда происходит изменение состояния (среда или поток исключений) внутри приложения N-уровня?В моей программе есть следующее:

  • Репозиторий ЦАП.Содержит делегата для «наблюдения» за программой и обновления словаря соединений.
  • Словарь подключений.Перечисляет все строки подключения для каждого типа env и rdbms.
  • Бизнес-уровень.Инкапсулирует данные транзакции.У этого есть конструктор, принимающий хранилище ЦАП по значению.

Я подозреваю, что это будет случай передачи по значению с хранилищем ЦАП в BLL, но не уверен.Соединения работают нормально с репозиторием, и ЦАПы обновляются, если я не использую BLL, но как только BLL интегрирован, BLL начинает использовать только соединения по умолчанию.

Есть что-то, что я мог пропустить?Должен ли я сделать, чтобы BLL также наблюдал за хранилищем ЦАП?

1 Ответ

1 голос
/ 26 октября 2011

Возможно, попробуйте использовать контейнер IoC для этого?Я не уверен, что понял это правильно, но если вам нужно наблюдать за некоторыми настройками, которые могут измениться, вы можете передать тип (или интерфейс) в конструктор типов, которые требуют соблюдения настроек.Каждый раз, когда вам нужно применить новые настройки, вы просто отбрасываете старый экземпляр типа и создаете новый, передавая обновленные настройки.

Settings currentSettings = ContainerService.Instance.Resolve<Settings>();
SomeType t = new SomeType(currentSettings);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...