.net - app.config 文件和 XYZ.settings 文件有什么区别?

标签 .net configuration settings appsettings

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

但我找到了两种方法来做到这一点。当我在 Visual Studio 2008 中打开添加新项目对话框时,它提供了创 build 置文件 (.settings) 或配置文件 (.config) 的选项。两者有什么区别,在什么场景下使用?

最佳答案

更新:在 ASP.NET Core Land 中,配置不再通过其中任何一个进行管理 - 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

<小时/>

设置(来自 .settings 集和 Configuration.AppSettings)存储在 .config 文件中[与许多其他内容一起]。

区别在于.settings内容[在.NET 2.0/VS2005中添加]在一组属于在一起的设置之上分层了一个强类型类,而Configuration.AppSettings只是让您检索字符串,迫使您进行任何转换,并且没有默认值的概念。 (Configuration 类实际上已被分流到一个侧程序集中以反射(reflect)这一点 - 如果需要,您需要显式添加对 System.Configuration 的引用)。

向您的项目添加 .settings 将导致添加 app.config 来容纳设置(如果您还没有)。每次更改组件/应用程序的设置列表时,都会自动生成读取设置的类。

.Settings 的其他功能是能够将某些设置指定为特定于用户的设置(并且还可以通过一次调用保存特定于用户的设置)。

使用 .Settings 的最佳原因通常是,您可以通过遵循属性的用法(每个集合都是 XML 文件中的单独 block )来清楚地识别谁在代码库中使用哪个设置。 Configuration.appSettings 本质上更加全局化 - 它只是一组属性,您不知道哪个 DLL、子系统或类依赖于特定的设置条目。请参阅this blog post from Steven Smith了解更多。

最后,如果您仍然没有充分了解设置管理,那么您将无法击败 this Rick Strahl post on the subject为了完整性或绝对数量的想法和角度。

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

关于.net - app.config 文件和 XYZ.settings 文件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909688/

相关文章:

.net - 执行 vsvars32.bat 命令后,Powershell 没有正确的路径信息

c# - 从 EntityFramework ObjectContext 获取类型集合

configuration - 更改 Thomson TG585 Cytanet 路由器的 DNS

c# - 是否可以使用代码将项目添加到 C# 设置

android - 检查用户是否已授予 NotificationListener 访问我的应用程序的权限

c# - URL 路由在 2 个路由规则之间变得困惑

c# - 如何测试依赖于 IP 地址的 ASP.NET 应用程序

java - 测试使用其他测试的内部 ContextConfiguration

python - 可插拔应用程序的Django默认设置约定?

visual-studio-code - 设置优先级(用户、工作区、文件夹)