我真的很新的.NET,我仍然没有得到关于悬挂的配置文件是如何工作的。
每次我在谷歌搜索一下我得到的web.config的结果,但我正在写一个Windows窗体应用程序。
我想通了,我需要使用System.Configuration命名空间,但文件并没有帮助。
如何定义我的配置文件是XYZ.xml? 或者它具有的配置文件“默认”的名字? 我还没有得到这一点。
此外,如何定义一个新的部分,我真的需要创建自ConfigurationSection继承的类?
我想只是有一些像这样的价值观的配置文件:
<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>
有一个简单的办法做到这一点? 你能以简单的方式解释了如何读取和/写入到一个简单的配置文件?
Answer 1:
你想用一个app.config。
当您添加一个新的项目,以项目有一些所谓的应用程序的配置文件。 补充一点。
然后你在配置/ appSettings部分添加键
喜欢:
<configuration>
<appSettings>
<add key="MyKey" value="false"/>
通过做访问成员
System.Configuration.ConfigurationSettings.AppSettings["MyKey"];
这部作品在.NET 2及以上。
Answer 2:
以前的答案的澄清......
1)一个新的文件添加到项目中(添加 - >新建用品 - >应用程序配置文件)
2)新的配置文件将出现在解决方案资源管理器为App.Config中。
3)使用下面的添加设置到这个文件作为模板
<configuration>
<appSettings>
<add key="setting1" value="key"/>
</appSettings>
<connectionStrings>
<add name="prod" connectionString="YourConnectionString"/>
</connectionStrings>
</configuration>
4)检索他们是这样的:
private void Form1_Load(object sender, EventArgs e)
{
string setting = ConfigurationManager.AppSettings["setting1"];
string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
}
5)在建,你的输出文件夹将包含一个名为<的AssemblyName> .exe.config这将是app.config文件的拷贝文件。 没有进一步的工作应该需要由开发商来完成创建此文件。
Answer 3:
从以前的答案的快速阅读,他们看起来是正确的,但它并不像有人提到在VS 2008中新的配置设施,它仍然使用的app.config(在编译时YourAppName.exe.config复制),但有一个UI部件设置属性和specifiy它们的类型。 在项目的“属性”文件夹中双击Settings.settings。
最好的部分是,访问来自代码这个属性是类型安全的 - 编译器将捕获明显的错误就像打错属性名称。 例如,在一个名为的app.config财产MyConnectionString将访问这样的:
string s = Properties.Settings.Default.MyConnectionString;
Answer 4:
您应该创建一个App.config文件(很类似的web.config)
你应该右键点击你的项目,增加新的项目,新的“应用程序配置文件”。
确保您使用添加到System.Configuration项目。
然后你就可以值添加到它
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="setting1" value="key"/>
</appSettings>
<connectionStrings>
<add name="prod" connectionString="YourConnectionString"/>
</connectionStrings>
</configuration>
private void Form1_Load(object sender, EventArgs e)
{
string setting = ConfigurationManager.AppSettings["setting1"];
string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
}
刚一说明, 根据微软 ,你应该使用ConfigurationManager中,而不是ConfigurationSettings。 (见注释部分)“的ConfigurationSettings类仅提供向后兼容性。对于新的应用程序,你应该使用ConfigurationManager中类或WebConfigurationManager类代替。”
Answer 5:
为配置文件的默认名称为[yourexe] .exe.config。 所以NOTEPAD.EXE将有notepad.exe.config名为的配置文件,在同一文件夹中的程序。 这是CLR和框架的各个方面的通用配置文件,但可以将包含在你自己的设置<appSettings>
节点。
所述<appSettings>
元素创建其可以作为被访问的名称-值对的集合System.Configuration.ConfigurationSettings.AppSettings
。 有没有办法将更改保存回配置文件,但是。
另外,也可以向自己的自定义元素添加到配置文件-例如,以限定结构化设置-通过创建实现一类IConfigurationSectionHandler
并将其添加到<configSections>
配置文件的元素。 然后,您可以通过调用访问它ConfigurationSettings.GetConfig
。
.NET 2.0增加一个新的类, System.Configuration.ConfigurationManager
,它支持多个文件,每个系统数据的每个用户的覆盖。 它还支持保存修改的配置恢复设置文件。
Visual Studio创建一个名为App.config
,它复制到文件夹EXE,使用正确的名称,当项目建成。
Answer 6:
约.NET应用程序配置的最佳(IMHO)制品是在CodeProject 解开.NET 2.0配置之谜 。 而我的下一个收藏有关.NET中的配置文件部分(较短)的文章是理解部件处理程序- App.config文件 。
Answer 7:
在Windows窗体,你有一个app.config
,这是非常相似web.config
。 但是,因为我看到了什么,你需要它的自定义值,我建议使用设置。 要做到这一点,打开您的项目属性,然后去设置。 如果设置文件不存在,你将有一个链接创建一个。 然后,您可以添加设置,你看到没有表,这将产生两个相应的XML,以及可以用来加载和保存设置的设置类。 设置类将被命名为类似DefaultNamespace.Properties.Settings
。 然后,你可以使用类似的代码:
using DefaultNamespace.Properties;
namespace DefaultNamespace {
class Class {
public int LoadMySettingValue() {
return Settings.Default.MySettingValue;
}
public void SaveMySettingValue(int value) {
Settings.Default.MySettingValue = value;
}
}
}
Answer 8:
我同意这点你的app.config其他答案。 然而,而不是直接从app.config中读取值,你应该创建一个实用工具类(的AppSettings是我使用的名称),以读取它们并将它们公开为属性。 所述的AppSettings类可以从几个商店,如从组件(的AssemblyVersion和的AssemblyFileVersion)的app.config和应用程序版本信息的值被用于骨料设置。
Answer 9:
这样做的一个非常简单的方式是利用你自己的自定义Settings
类 。
Answer 10:
System.Configuration.ConfigurationSettings.AppSettings [ “的myKey”];
AppSettings的已被弃用,现在已经过时了。 [ 链接 ]
另外在app.config的appSettings部分已取代了的applicationSettings部分。
正如别人所说,你应该使用System.Configuration.ConfigurationManager [ 链接 ]这对于NET 2.0是新的
Answer 11:
您正在使用哪个版本的.Net和VS的?
当你创建新的项目,你应该在你的解决方案称为app.config中,这是默认的配置文件的文件。
文章来源: Simplest way to have a configuration file in a Windows Forms C# Application