2010-02-05 87 views
5

我们有一个有点复杂的项目,原始开发人员为了组织目的而将其拆分为多个项目。这对我意味着什么,我有一个ASP.Net网站,它有一个web.config并包含各种良好的设置,另一个项目编译为一个拥有自己.config文件的app.config文件的DLL。.Net配置文件混淆

在DLL,这将是非常好的,能够访问所有我在ASP.Net proejct的Web.config文件中的AppSettings。

这可能吗?这是不错的做法吗?我真的不想复制和粘贴相同的信息,并且必须手动将它们保持在2之间同步(实际上最多可能有20个 - 这是一个大型项目,有人将它组织到一个荒谬的级别).config文件。

任何建议或最佳实践?

回答

3

这实际上是默认行为 - ConfigurationManager.AppSettings读取当前web.config所有的DLL。
有时.config文件是为其他项目(或dll)创建的,但它们不在本站中使用,应合并到web.config

+0

非常感谢!我试图测试,但我很害怕在部署时会错过一些奇怪的情况组合。 – 2010-02-05 22:24:02

0

System.Web.Configuration.WebConfigurationManager.AppSettings访问来自任何类库web.config。只要确保将对System.ConfigurationSystem.Web的引用添加到任何需要访问此库的库。

并回答您的有关标准初步实践问题,是的,它是常见的应用程序键/值存储在web.config中保持对事物的ASP.NET Web应用程序和网站集中。在你的web.config中,只需像在app.settings文件中一样使用<appSettings>部分即可。

+0

你说得对,但你为什么要引用'System.Web'?你可以引用'System.Configuration',并且一切都应该很好,例如。通过'ConfigurationManager.AppSettings'获取应用程序设置。 – 2010-02-05 17:36:55

+0

够公平的。我倾向于使用WebConfigurationManager中特定于Web应用程序的附加功能,所以我更喜欢它。如果简单地找到名称/值对是所有的OP需求,ConfigurationManager可能是更好的解决方案... – 2010-02-05 17:49:49

+0

好的讨论两个经理及其使用: http://stackoverflow.com/questions/698157/whats-the-差之间最webconfigurationmanager和最configurationma/698163 – 2010-02-05 17:50:17