【问题标题】:.Net Configuration files confusion.Net 配置文件混乱
【发布时间】:2011-01-13 14:54:57
【问题描述】:

我们有一个有些复杂的项目,最初的开发人员出于组织目的将其拆分为多个项目。这对我来说意味着我有一个 ASP.Net 站点,它有一个 web.config 并包含各种好的设置,另一个项目编译成一个 DLL,它有它自己的 .config 文件 app.config。

在 DLL 中,如果能够访问我在 ASP.Net proejct 的 web.config 文件中拥有的所有 AppSettings,那就太好了。

这可能吗?这是好习惯吗?我真的不想复制和粘贴相同的信息,并且必须手动使它们在 2 之间保持同步(实际上可能多达 20 个——这是一个大项目,有人将它组织到一个荒谬的水平).config 文件.

有什么建议或最佳做法吗?

【问题讨论】:

    标签: asp.net web-config app-config


    【解决方案1】:

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

    【讨论】:

    • 非常感谢!我正在尝试测试,但我害怕在部署时会错过一些奇怪的环境组合。
    【解决方案2】:

    System.Web.Configuration.WebConfigurationManager.AppSettings 从任何类库访问web.config。只要确保将System.ConfigurationSystem.Web 的引用添加到任何需要访问它的库即可。

    为了回答您关于标准实践的问题,是的,通常将应用程序键/值存储在 web.config 中,以使事情集中在 ASP.NET Web 应用程序和网站中。在您的 web.config 中,只需像在 app.settings 文件中一样使用 <appSettings> 部分。

    【讨论】:

    • 你是对的,但你为什么要引用System.Web?你可以参考System.Configuration,一切都应该没问题,例如。通过ConfigurationManager.AppSettings获取应用设置。
    • 很公平。我倾向于使用 WebConfigurationManager 中特定于 Web 应用程序的附加功能,所以我更喜欢它。如果只需要查找名称-值对就是 OP 的全部需求,那么 ConfigurationManager 可能是更好的解决方案...
    • 很好地讨论了两位经理及其用途:stackoverflow.com/questions/698157/…
    猜你喜欢
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 2019-02-17
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多