我是.NET的新手,我仍然没有了解配置文件的工作方式 .
每次我在google上搜索它时都会得到关于web.config的结果,但我正在编写一个Windows窗体应用程序 .
我发现我需要使用System.Configuration命名空间,但文档没有帮助 .
如何定义我的配置文件是XYZ.xml?或者它是否具有配置文件的“默认”名称?我仍然没有得到那个 .
另外,如何定义新的部分,我真的需要创建一个继承自ConfigurationSection的类吗?
我想要一个包含这样的值的配置文件:
<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>
有一个简单的方法吗?您能以简单的方式解释如何从/向简单的配置文件进行读写吗?
11 回答
我同意其他指向app.config的答案 . 但是,您应该创建一个实用程序类(AppSettings是我使用的名称)来读取它们并将它们作为属性公开,而不是直接从app.config中读取值 . AppSettings类可用于聚合来自多个商店的设置,例如来自app.config的值和来自程序集的应用程序版本信息(AssemblyVersion和AssemblyFileVersion) .
一个非常简单的方法是使用your own custom Settings class .
您想使用App.Config .
向项目添加新项目时,会出现名为“应用程序配置文件”的内容 . 加上那个 .
然后在配置/ appsettings部分添加密钥
喜欢:
通过这样做来访问成员
这适用于.net 2及以上版本 .
澄清以前的答案......
1)向项目添加新文件(添加 - >新项目 - >应用程序配置文件)
2)新的配置文件将作为App.Config出现在解决方案资源管理器中 .
3)使用以下模板将您的设置添加到此文件中
4)像这样检索它们:
5)构建时,输出文件夹将包含一个名为<assemblyname> .exe.config的文件 . 这将是App.Config文件的副本 . 开发人员不需要进一步的工作来创建此文件 .
从快速阅读以前的答案,它们看起来是正确的,但它看起来并不像任何人提到VS 2008中的新配置工具 . 它仍然使用app.config(在编译时复制到YourAppName.exe.config),但有一个UI小部件来设置属性并指定它们的类型 . 双击项目“属性”文件夹中的Settings.settings .
最好的部分是从代码访问此属性是类型安全 - 编译器将捕获明显的错误,如错误输入属性名称 . 例如,app.config中名为MyConnectionString的属性将被访问为:
您应该创建一个App.config文件(非常类似于web.config)
您应该右键单击您的项目,添加新项目,新的“应用程序配置文件” .
确保使用System.Configuration添加到项目中 .
然后您可以为其添加值
只需注意,according to Microsoft,您应该使用ConfigurationManager而不是ConfigurationSettings . (见备注部分)"The ConfigurationSettings class provides backward compatibility only. For new applications you should use the ConfigurationManager class or WebConfigurationManager class instead. "
配置文件的默认名称是[yourexe] .exe.config . 因此,notepad.exe将在程序所在的文件夹中有一个名为notepad.exe.config的配置文件 . 这是CLR和Framework的所有方面的常规配置文件,但可以在
<appSettings>
节点下包含您自己的设置 .<appSettings>
元素创建一组名称 - 值对,可以作为System.Configuration.ConfigurationSettings.AppSettings
进行访问 . 但是,无法将更改保存回配置文件 .也可以将自己的自定义元素添加到配置文件中 - 例如,定义结构化设置 - 通过创建实现
IConfigurationSectionHandler
的类并将其添加到配置文件的<configSections>
元素 . 然后,您可以通过调用ConfigurationSettings.GetConfig
来访问它 ..NET 2.0添加了一个新类
System.Configuration.ConfigurationManager
,它支持多个文件,每个用户覆盖每个系统数据 . 它还支持将修改后的配置保存回设置文件 .Visual Studio创建一个名为
App.config
的文件,在构建项目时,该文件将使用正确的名称复制到EXE文件夹 .关于.NET应用程序配置的最佳(IMHO)文章是在CodeProject Unraveling the Mysteries of .NET 2.0 Configuration上 . 我下一篇关于.net配置文件中的部分的最喜欢(较短)的文章是Understanding Section Handlers - App.config File .
在Windows窗体中,您有一个
app.config
,它与web.config
非常相似 . 但是,由于我认为你需要它是自定义值,我建议使用设置 . 为此,请打开项目属性,然后转到设置 . 如果设置文件不存在,您将有一个链接来创建一个 . 然后,您可以将设置添加到您在那里看到的表,这将生成相应的XML和Settings类可用于加载和保存设置 . 设置类的名称类似于DefaultNamespace.Properties.Settings
. 然后,您可以使用类似于以下的代码:System.Configuration.ConfigurationSettings.AppSettings [ “的myKey”];
AppSettings已被弃用,现在已被淘汰 . [link]
此外,app.config的appSettings部分已被applicationSettings部分替换 .
正如其他人提到的,你应该使用System.Configuration.ConfigurationManager [link]这是.Net 2.0的新功能
您使用的是什么版本的.Net和VS?
创建新项目时,应该在解决方案中有一个名为app.config的文件,即默认配置文件 .