使用 Visual C# 存储和检索应用程序配置文件中的自定义信息
04/28/2020
本文内容
本文介绍了如何存储配置文件中的自定义信息,该文件稍后可在运行时由与其关联的应用程序检索。 当您必须定义与应用程序关联的数据时,这非常有用。
原始产品版本: Visual C#
原始 KB 编号: 815786
要求
以下列表概述了您所需的推荐硬件和软件:
Microsoft Windows
Visual C#
本文假定您熟悉下列主题:
可扩展标记语言 (XML)
.NET 配置文件
创建读取配置文件的控制台应用程序
可以将应用程序设置存储在与应用程序关联的配置文件中。 配置文件以 XML 格式保存。
.NET Framework 中的和命名空间包括必要的类,以在运行时从 System.Configuration System.Collections.Specialized .NET 应用程序配置文件检索信息。
若要创建在运行时读取关联配置文件内容的控制台应用程序,请按照以下步骤操作:
启动 Visual Studio .NET 或 Visual Studio。
在"文件"菜单上,指向 "新建",然后选择"项目"。
选择 "项目类型 " 下的 Visual C# ,然后选择" 模板"下的 控制台 应用程序。 将项目 命名为 ConConfig。 默认情况下,Visual C# 创建一个名为 Program 的 类。
备注
在 Visual Studio .NET 中,选择"项目类型"下的 Visual C# 项目,然后选择"模板"下的 控制台 应用程序。 将项目 命名为 ConConfig。 默认情况下,Visual C# 创建一个名为 Class1 的类。
确保"解决方案 资源管理器" 窗口可见。 如果看不到,请按 Ctrl+Alt+L 组合键。
在 解决方案资源管理器 中,右键单击项目 名称,选择"添加",然后选择 "新项目"。
在" 添加新项"列表中 ,选择 XML 文件。
在 "名称"文本框中 ,App.config, 然后选择"添加 "。
可以使用应用程序配置文件来收集以键/值格式保存的自定义应用程序设置。 可以在 关联的配置文件 部分包含元素。 每个键/值对都有一 个元素。 元素 具有以下格式:
将包含 元素 的节添加到与标记之间的 配置文件。
例如,以下配置文件包含一 个指定三个键/值对的部分:
在 解决方案资源管理器中,双击 Program.cs显示代码窗口。 将以下语句添加到代码模块。
备注
这些语句必须出现在文件中任何其他语句之前。
using System.Configuration;
using System.Collections.Specialized;
按照以下步骤添加 System.Configuration.dll 引用:
在"项目" 菜单上,选择"添加引用"。
在 "添加引用 "对话框中,选择 .NET 选项卡。
查找并选择组件名称 System.Configuration 。
选择 "确定"。
若要保留配置文件部分中的配置文件密钥中的值,请在此部分中声明一个字符串 Main 变量,如下所示:
string sAttr;
若要从配置文件部分检索指定键的值,请使用类 Get AppSettings 的属性 ConfigurationManager 的方法。 该类 ConfigurationManager 位于 System.Configuration 命名空间中。 当该方法收到包含键的字符串输入参数时,应用程序将检索与该键 AppSettings.Get 关联的值。
以下代码从关联的配置文件 Key0 中检索属性的值。 然后,代码将此值设置在 sAttr 字符串变量中。 如果此值不存在键,则不存储任何项 sAttr 。
sAttr = ConfigurationManager.AppSettings.Get("Key0");
若要在控制台窗口中显示应用程序检索的值, Console.WriteLine 请使用以下命令:
Console.WriteLine("The value of Key0 is "+sAttr);
可以使用一个对属性的引用来 AppSettings 检索节内的所有键/值 对。 使用该属性 AppSettings 时,应用程序将返回所有关联的键/值对。 这些对存储在类型 NameValueCollection 中。 NameValueCollection包含应用程序检索的每个键的键/值条目。 该类 NameValueCollection 位于 System.Collections.Specialized 命名空间中。
NameValueCollection sAll ;
sAll = ConfigurationManager.AppSettings;
引用 AllKeys 字符串数组的属性,该数组具有应用程序检索的每个键 NameValueCollection 的条目。 使用 foreach 构造来在数组中进行访问,以访问应用程序检索到 AllKeys 的每个密钥。 每个键条目 AllKeys 都是一个字符串数据类型。
在 foreach 构造内,用于显示控制台窗口中的键及其 Console.WriteLine 关联值。 应用程序处理的当前键位于 s 中。 在 中使用它作为索引 sAllNameValueCollection 来获取其关联值。
foreach (string s in sAll.AllKeys)
Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
Console.ReadLine();
完整代码列表
using System;
using System.Configuration;
using System.Collections.Specialized;
namespace ConConfig
{
class Program
{
static void Main(string[] args)
{
string sAttr;
// Read a particular key from the config file
sAttr = ConfigurationManager.AppSettings.Get("Key0");
Console.WriteLine("The value of Key0: " + sAttr);
// Read all the keys from the config file
NameValueCollection sAll;
sAll = ConfigurationManager.AppSettings;
foreach (string s in sAll.AllKeys)
Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));
Console.ReadLine();
}
}
}
备注
此代码面向 .NET Framework 2.0。 如果使用的是 .NET Framework 1.0 或 .NET Framework 1.1,则类的所有 ConfigurationManager 实例更改为 ConfigurationSettings 。
完成配置文件列表 (ConConfig.exe.config)
验证它是否正常工作
按 F5 运行代码。 控制台窗口应显示关联配置文件部分中的键/值对, 如下所示:
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
排除故障
配置文件以 XML 格式保存。 确保遵循所有 XML 语法规则。 请记住,XML 区分大小写。 如果 XML 格式不正确,或者元素拼写错误,则会收到 System.Configuration.Configuration 异常。
例如,如果添加具有大写 K 而不是小写 k 的元素的键属性,或者如果节显示为带大写 A 的 (而不是小写 ) ,则会收到一条错误消息。
配置文件必须与其关联的应用程序保存在同一文件夹中。
您必须对配置文件名称使用以下语法:
..config
应用程序的名称在哪里。 是应用程序的类型,例如 .exe 。 并且 .config 是必需的后缀。
参考