9

我通常使用文本文件作为配置。但这次我想利用 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>

这行得通吗?如何检索数据?

4

2 回答 2

18

直接来自文档

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.

于 2012-10-04T16:32:49.703 回答
0

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

如果您因为奇怪的业务请求而无法避免存储在配置中,我宁愿坚持一个单一的设置

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

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

于 2014-10-09T22:58:41.070 回答