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

时间:2011-10-25 18:31:27

标签: c# .net oop design-patterns delegates

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

  • DAC存储库。持有代表“观察”程序并更新连接字典。
  • 连接词典。列出每个env和rdbms类型的所有连接字符串。
  • 业务层。封装数据事务。这个有一个构造函数按值接受DAC存储库。

我怀疑这可能是DAC存储库向BLL传递值的问题,但不确定。如果我没有使用BLL,那么连接可以与存储库一起正常工作并且DAC会更新,但是一旦集成了BLL,BLL就开始只使用默认连接。

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

1 个答案:

答案 0 :(得分:1)

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

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