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

C# 如何使数据访问层了解当前的应用程序状态?,c#,.net,oop,design-patterns,delegates,C#,.net,Oop,Design Patterns,Delegates,是否有一种方法可以使存储库中的数据访问类在N层应用程序中发生状态更改(遇到环境或异常流)时得到更新?在我的计划中,我有以下几点: DAC存储库。持有一个委托以“观察”程序并更新连接字典 连接字典。列出每种环境和rdbms类型的所有连接字符串 业务层。封装数据事务。这个函数有一个构造函数,它通过值接受DAC存储库 我怀疑这可能是DAC存储库向BLL传递值的问题,但不确定。如果我不使用BLL,连接在存储库中可以正常工作,DAC也会得到更新,但是一旦BLL被集成,BLL就会开始只使用默认连接 有什

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

  • DAC存储库。持有一个委托以“观察”程序并更新连接字典
  • 连接字典。列出每种环境和rdbms类型的所有连接字符串
  • 业务层。封装数据事务。这个函数有一个构造函数,它通过值接受DAC存储库
我怀疑这可能是DAC存储库向BLL传递值的问题,但不确定。如果我不使用BLL,连接在存储库中可以正常工作,DAC也会得到更新,但是一旦BLL被集成,BLL就会开始只使用默认连接


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

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

Settings currentSettings = ContainerService.Instance.Resolve<Settings>();
SomeType t = new SomeType(currentSettings);
Settings currentSettings=ContainerService.Instance.Resolve();
SomeType t=新的SomeType(当前设置);