事实上,我正处于学习的阶段.NET相关的东西,我正在探索如何保存应用程序.我最终编写了自己的类,将设置保存在一个XML文件中,然后我发现了这一点.NET本身支持保存应用程序设置.
但我找到了两种方法.当我在Visual Studio 2008中打开"添加新项"对话框时,它提供了创建设置文件(.Settings)或配置文件(.config)的选项.两者之间有什么区别?在什么情况下应该使用它们?
事实上,我正处于学习的阶段.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 .