在调试过程中从app.config中检索应用程序
问题描述:
我正在使用VS 2008和.NET 3.5,并且在调试时遇到检索应用程序设置的麻烦。我添加了对System.Configuration的引用,并且控制台应用程序编译并运行,但是当我尝试检索应用程序设置时,返回值始终为空。在调试过程中从app.config中检索应用程序
的App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ConsoleApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<ConsoleApp.Properties.Settings>
<setting name="LogDirectory" serializeAs="String">
<value>\c$\TestApp\LOG\</value>
</setting>
</ConsoleApp.Properties.Settings>
</applicationSettings>
</configuration>
代码片段:
string logPath = @"\\" + machineName + ConfigurationManager.AppSettings["LogDirectory"];
我做得显然是错误的吗?
编辑:澄清,该app.config XML是自动生成的。我向该项目添加了一个新的应用程序配置文件项目,然后使用项目属性窗口的设置选项卡添加LogDirectory设置。
答
为什么不只是使用属性? 您可以使用Properties.Settings.Default.WhatEverYouWant访问您的属性?
这是有效的,并在Visual Studio中烘焙。
答
你需要这样的东西 - 应用程序设置本质上是一个字符串字典。
<configuration>
<appSettings>
<add key="LogDirectory" value="\c$\TestApp\LOG\"/>
</appSettings>
</configuration>
有关应用程序设置的更多信息,请查看here。
您能给一个代码示例吗?我试过使用“Properties.Settings.Default.LogDirectory”,我得到一个编译错误,指出“名称'属性'在当前上下文中不存在”。 – Talvalin 2009-11-27 10:19:57
这是您的设置:这一个值 applicationSettings> 您可以通过Properties.Settings.Default.SettingName来访问它 –
2009-11-27 19:43:04
抱歉,XML部分的格式不成立。但底线是使用:Properties.Settings.Default.SettingName 顺便说一句,你必须去你的项目属性和添加一个设置这将添加一个app.config文件,你将有权访问的属性。 – 2009-11-27 19:49:03