如何使数据访问层了解当前应用程序的状态

本文关键字:应用程序 状态 了解 何使 数据 访问 | 更新日期: 2023-09-27 18:12:28

是否有一种方法可以使存储库中的数据访问类在n层应用程序中发生状态更改(遇到的环境或异常流)时得到更新?在我的程序中,我有以下内容:

  • DAC库。持有一个委托来"观察"程序并更新连接字典。
  • 连接字典。列出每个环境和rdbms类型的所有连接字符串。
  • 业务层。封装数据事务。这个有一个构造函数接受DAC Repository的值。

我怀疑这将是DAC存储库到BLL的按值传递问题,但不确定。如果我不使用BLL,这些连接可以很好地与存储库一起工作,并且dac也会得到更新,但是一旦集成了BLL, BLL就开始只使用默认连接。

有什么我可能错过的吗?我应该让BLL也观察DAC存储库吗?

如何使数据访问层了解当前应用程序的状态

也许尝试使用IoC容器?我不确定我是否正确地理解了这一点,但是如果您需要观察一些可能改变的设置,您可以将类型(或接口)传递给需要观察设置的类型的构造函数。每次需要应用新设置时,只需丢弃该类型的旧实例,并创建一个传递更新设置的新实例。

Settings currentSettings = ContainerService.Instance.Resolve<Settings>();
SomeType t = new SomeType(currentSettings);