(web.config | app.config)与静态类对象中的配置设置

时间:2008-12-11 16:08:51

标签: c# asp.net

我只关注BlogEngine.Net源代码,并对如何存储应用程序设置很感兴趣。

源代码使用一个使用单例模式实现的静态类对象来实现应用程序设置,而不是使用我习惯使用的web.config或app.config。信息仍存储在设置文件中,但任何检索信息的调用都是通过将所有信息预加载到属性值的类对象完成的。

不同方法的任何优点?

4 个答案:

答案 0 :(得分:5)

如果您有一个可以更改配置设置的管理区域,写入web.config将导致应用程序重新启动,并且所有用户都将丢失其会话数据。使用单独的配置文件可以防止这种情况发生。

答案 1 :(得分:1)

此模型的一个严重缺点是无法获取应用程序外部所做的更改。由于配置设置在启动时加载并在内存中维护,所有更改都必须通过管理页面或应用程序脱机完成。

答案 2 :(得分:0)

拥有充当配置设置访问者的属性是有利有弊的。

一方面,拥有这样一个具有属性的类可以为开发团队提供更好的组织和更可重用的代码。

另一方面,每次添加新的配置设置时,您是否需要更新类并重建应用程序?

答案 3 :(得分:0)

根据我的理解,web.config文件在应用程序启动时加载到缓存中。我在很长一段时间没有看过这个,所以我可能弄错了。如果这是真的,那么我真的不明白为什么单例,静态类模式会有益。如果使用ASP.Net State服务或SQL State Server而不是默认的进程内会话管理,则重新启动Web应用程序(通过IIS或修改配置)将不会影响会话。总而言之,我不完全确定为什么blogengine.net会走那条路。