我应该如何存储我的ASP.NET MVC网站的设置?

Rin*_*dar 5 .net c# xml asp.net-mvc

我有一个ASP.NET MVC站点,它由一个解决方案中的3个项目组成:

DomainModel(类库 - 包含LINQ Repo)
DomainServices(类库 - 包含业务逻辑)
WebUI(ASP.NET MVC站点)

我需要一个地方来存储我们网站的一系列设置,可以通过XML进行配置.

这应该进入哪个项目?有没有人有一个例子说明他们如何加载,然后在这些不同的项目中访问他们的设置?

我是否在包含所有设置属性的某个C#类的构造函数中加载XML文件一次?

有人可以给我一些关于在XML文件中存储设置的示例和技巧,以便在多项目解决方案中使用吗?

Mat*_*s F 8

设置通常存储在web.config中.所有程序集都可以访问这些设置.

ConfigurationManager.AppSettings["key"]
Run Code Online (Sandbox Code Playgroud)

您需要添加对System.configuration.dll的引用


Rob*_*ton 7

而不是使用AppSettings,它只是键值对的集合,而是考虑使用ConfigurationSection或IConfigurationSectionHandler定义自己的配置结构

这样你就可以获得包装类的所有安全性,并且它不会使你的AppSettings混乱(并且在某个地方很好地定义供你使用).

更好的是,定义自己的XML模式,并使用XmlSerialization/Deserialization将此文件存储在web.config之外,监听它的更改(将其绑定到缓存,无论如何).

如果以这种方式执行此操作,则无需修改web.config以获取更改,因此无需重新启动Web应用程序,从而在此过程中丢失会话/缓存.

不是写得好的无状态Web应用程序应该关心丢失会话/缓存 - 但总有人...... :)