如何在WinForms中从app.config文件中读取AppSettings

10

我通常使用文本文件作为配置文件。但这一次,我想利用app.config将文件名(键)与名称(值)相关联,并将这些名称在下拉框中可用。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
   <add key="Scenario1.doc" value="Hybrid1"/>
   <add key="Scenario2.doc" value="Hybrid2"/>
   <add key="Scenario3.doc" value="Hybrid3"/>
</appSettings>
</configuration>

这样行吗?如何检索数据?

2个回答

21

直接从文档中获取:

using System.Configuration;

// Get the AppSettings section.        
// This function uses the AppSettings property
// to read the appSettings configuration 
// section.
public static void ReadAppSettings()
{
  try
  {
    // Get the AppSettings section.
    NameValueCollection appSettings = ConfigurationManager.AppSettings;

    // Get the AppSettings section elements.
    Console.WriteLine();
    Console.WriteLine("Using AppSettings property.");
    Console.WriteLine("Application settings:");

    if (appSettings.Count == 0)
    {
      Console.WriteLine("[ReadAppSettings: {0}]",
      "AppSettings is empty Use GetSection command first.");
    }
    for (int i = 0; i < appSettings.Count; i++)
    {
      Console.WriteLine("#{0} Key: {1} Value: {2}",i, appSettings.GetKey(i), appSettings[i]);
    }
  }
  catch (ConfigurationErrorsException e)
  {
    Console.WriteLine("[ReadAppSettings: {0}]", e.ToString());
  }
}

因此,如果您想访问设置Scenario1.doc,则可以执行以下操作:

var value = ConfigurationManager.AppSettings["Scenario1.doc"];

编辑:

如Gabriel GM在评论中所说,您需要添加对System.Configuration的引用。


13
如果您在项目中找不到 "ConfigurationManager",可以尝试将 "system.configuration" 添加到项目引用中。 - Gabriel GM

0

app.config 中的应用程序设置是用于存储特定于应用程序/环境的设置,而不是存储绑定到 UI 的数据。

如果由于奇怪的业务需求而无法避免在配置文件中存储数据,我宁愿坚持使用单个设置。

<add key="FileDropDown" value="File1-Value|File2-Value" />

编写C#代码以获取此设置ConfigurationManager.AppSettings["FileDropDown"]并执行一些字符串拆分('|')和('-')以创建kvp集合并将其绑定到UI。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接