代码之家  ›  专栏  ›  技术社区  ›  Hemant

app.config文件和xyz.settings文件有什么区别?

  •  70
  • Hemant  · 技术社区  · 15 年前

    我实际上正处于与.NET相关的东西的学习阶段,我正在探索如何保存应用程序。最后我编写了自己的类,该类将设置保存在XML文件中,然后我发现.NET本身支持保存应用程序设置。

    但我找到了两种方法。当我在Visual Studio 2008中打开“添加新项”对话框时,它提供了创建设置文件(.settings)或配置文件(.config)的选项。两者的区别是什么?应该在什么情况下使用它们?

    3 回复  |  直到 6 年前
        1
  •  53
  •   Ruben Bartelink    6 年前

    更新:在ASP.NET核心平台中,配置不再通过以下任一项进行管理- see this fantastic writeup from Travis Illig with the a-z on Microsoft.Extension.Configuration and Microsoft.Extensions.Configuration.Binder which are effectively a superset of all this


    设置(从设置集和 Configuration.AppSettings )存储在.config文件中[与许多其他东西一起]。

    不同之处在于.settings(添加在.NET 2.0/vs2005中)在属于一起的设置集上分层了一个强类型类,而 配置.appsettings 只允许您检索字符串,强制您进行任何转换,并且不具有默认值的概念。(配置类实际上已经被调入一个侧程序集以反映这一点-如果需要,您需要显式添加对System.Configuration的引用)。

    将.settings添加到项目将导致添加app.config以容纳尚未添加的设置。每次更改组件/应用程序的设置列表时,都会自动生成读取设置的类。

    .settings的其他功能是将某些设置指定为特定于用户的设置(也可以通过单个调用保存特定于用户的设置)。

    所有要使用.settings的最佳原因通常是,通过以下属性的用法,您可以清楚地识别代码库中使用哪个设置的人(并且每个设置在XML文件中都是一个单独的块)。 Configuration.appSettings 它的性质是更全局的——它只是一包属性,您不知道哪个dll、子系统或类依赖于特定的设置条目。见 this blog post from Steven Smith 更多。

    最后,如果你对设置管理还没有足够的了解,你就不会打败 this Rick Strahl post on the subject 为了完整或大量的想法和角度。

    旁白:还有 ASP.NET vNext Configuration 东西, outlined in this article 它非常灵活,在配置设置管理方面提供了不同的角度。

        2
  •  4
  •   Gerrie Schenck    15 年前

    设置文件是一个资源文件,您可以在其中指定不同的设置及其默认值。

    值本身在应用程序配置文件(.config文件)中配置。

    设置文件从未部署,因此您需要配置文件来进行配置。

        3
  •  0
  •   laktak    14 年前

    app.config文件与app存储在同一目录中。普通用户将没有写权限(例如在“程序文件”中)。

    设置文件应存储在用户“appdata”目录中(在该目录中,用户具有r/w权限)。

    因此,请使用用户可配置选项的设置文件。