3

我正在尝试构建一个读取 ASP.NET 项目的 web.config 文件的控制台项目。我需要从配置中读取一个值。我将我想从 web.config 文件中读取的内容放入其中。

<appSettings>
  <add key="LogoFrmNumber" value="001"/>
  <add key="LogoFrmPeriod" value="01"/>
</appSettings>

我想像读取常规 xml 文件一样读取 LogoFrmNumber 的值。我怎样才能读取该值。

这是我阅读 web.config 的代码,但我被卡住了。

XDocument doc = XDocument.Load( "c://web.config" );

var values = doc.Descendants( "AppSettings" );

foreach ( var value in values )
{
     Console.WriteLine( value.Value );
}
Console.ReadLine();
4

2 回答 2

5

字典是您保存数据的最佳选择,包括读取属性的方法

XDocument doc = XDocument.Load( "c://web.config" );
       var elements = doc.Descendants( "AppSettings" );
        Dictionary<string, string> keyValues = new Dictionary<string, string>();
            for (int i = 0; i < elements.Count; i++)
            {
               string key = elements[i].Attributes["key"].Value.ToString();
               string value = elements[i].Attributes["value"].Value.ToString();
               keyValues.Add(key,value);
            }  
于 2013-06-01T12:16:31.953 回答
4

下面的代码片段看起来是满足您需求的最优雅和最简单的方法。试用

ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = @"c:\web.config";
Configuration configuration=ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
KeyValueConfigurationCollection settings = configuration.AppSettings.Settings;
foreach (KeyValueConfigurationElement item in settings)
{
   Console.WriteLine(string.Format("Key : {0}  Value : {1}", item.Key, item.Value ));
}

如果有用请标记答案

于 2013-06-01T18:03:45.000 回答