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

但我找到了两种方法.当我在Visual Studio 2008中打开"添加新项"对话框时,它提供了创建设置文件(.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 stuff[是在.NET 2.0/VS2005中添加的]将一个强类型类放在一组属于一起的设置之上,而Configuration.AppSettings只允许您检索字符串,强制您进行任何转换,并且没有默认值的概念.(为了反映这一点,配置类实际上已经被分流到了一个侧面组件中——如果需要,需要显式地添加对System.Configuration的引用).

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

的其他特性.设置是指将某些设置指定为特定于用户的设置(以及通过一次通话保存特定于用户的设置).

使用.Settings的最好理由通常是,通过跟踪属性的用法,您能够清楚地识别谁在使用代码库中的哪个设置(并且每组都是xml文件中的一个单独的挡路).从本质上讲,Configuration.appSettings更具全局性--它只是一包属性,您不知道哪个DLL、子系统或类依赖于特定的设置项.有关更多信息,请参见this blog post from Steven Smith.

最后,如果你仍然没有读到足够的关于设置管理的书,你不会在完整性或纯粹数量的 idea 和Angular 上超过this Rick Strahl post on the subject.

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

.net相关问答推荐

找不到包Microsoft.VisualStudio.Azure.Containers.Tools.Targets

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

如何正确使用await using语法?

代码访问安全是否在任何现实世界中使用?

为什么不能使用 null 作为 Dictionary 的键?

单击关闭按钮时隐藏表单而不是关闭

.NET 的future 版本会支持 C# 中的元组吗?

如何摆脱 VS2008 中的目标程序集不包含服务类型错误消息?

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

.NET 世界是否有 Maven 替代方案或端口?

msbuild,定义条件编译符号

如何在 C# 7 中返回多个值?

在 C# 中与块等效?

是否可以完全用托管的 .NET 语言编写 JIT 编译器(本地代码)

String.Join 与 StringBuilder:哪个更快?

从 'System.Int32' 到 'System.Nullable`1[[System.Int32, mscorlib]] 的无效转换

泛型类的默认构造函数的语法是什么?

如果锁定的对象内部发生异常,它会保持锁定状态吗?

WPF 中的 Application.DoEvents() 在哪里?

如何使用匿名方法返回值?