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