我正在开发一个涉及多个.NET富客户端,中央服务器和包含配置设置的数据库的解决方案。我想遵循正确的解耦架构,不处理全局变量等应用程序设置。相反,我想简单地使用依赖注入将应用程序启动时检索到的配置值传递给构造函数,因为构建了对象图。
这似乎简单明了......除了在运行时处理设置更改时。我注意到现代应用程序通常不需要重新启动才能使更改生效。这不仅为用户带来了方便,而且对于依赖于这些设置的多个客户端和服务而言,这可能是非常必要的。
我无法理解这两个理想(启动时注入的设置和无缝运行时设置值更新)是如何实现的。换句话说,我可以想象使用最新设置的所有客户端的唯一方法是依赖于某种IAppConfiguration服务的所有依赖于设置的类,这些服务始终在每个请求时查询最新值。这不仅会促使一个糟糕的架构(按照this answer),但会降低性能(例如,如果涉及数据库查询)。
由于