我正在尝试阅读StartingMonthColumn和CategoryHeadingColumn 使用代码
从下面的app.config文件中ConfigurationSettings.AppSettings["StartingMonthColumn"]
但它返回null,ConfigurationSettings.AppSettings.Count也返回零
请帮我在我的Windows应用程序中阅读本文
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CTARepository.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CTARepository.Properties.Settings>
<setting name="Setting" serializeAs="String">
<value />
</setting>
</CTARepository.Properties.Settings>
</userSettings>
<appSettings>
<add key="StartingMonthColumn" value="7"/>
<add key="CategoryHeadingColumn" value="1"/>
</appSettings>
</configuration>
答案 0 :(得分:166)
ConfigurationSettings.AppSettings 已过时,您应该使用ConfigurationManager.AppSettings代替(您需要添加对System.Configuration的引用)
int value = Int32.Parse(ConfigurationManager.AppSettings["StartingMonthColumn"]);
如果在阅读应用设置时仍然遇到问题,请检查您的app.config
文件是否正确命名。具体来说,它应该根据执行程序集命名,即MyApp.exe.config
,并且应该与MyApp.exe
位于同一目录中。
答案 1 :(得分:17)
ConfigurationSettings.AppSettings 已弃用,请参见此处:
http://msdn.microsoft.com/en-us/library/system.configuration.configurationsettings.appsettings.aspx
那说,它应该仍然有用。
只是一个建议,但您确认您的应用程序配置是您的可执行文件正在使用的那个吗?
尝试附加调试器并检查以下值:
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
然后打开配置文件并按预期验证该部分。
答案 2 :(得分:17)
答案 3 :(得分:16)
答案 4 :(得分:6)
此:
Console.WriteLine( "StartingMonthColumn is {0}", ConfigurationManager.AppSettings["StartingMonthColumn"]);
对我来说很好。
请注意,ConfigurationManager
位于System.Configuration
命名空间中(因此您可能需要using System.Configuration;
语句),并且由于您所读取的内容具有字符串类型,因此您需要解析你读入的内容,将其用作数字。
另外,请务必在项目或构建脚本中将system.configuration.dll
设置为参考。
答案 5 :(得分:6)
原因很简单,您对ConfigurationSettings.AppSettings
的调用未返回所需的配置文件。请尝试以下任何一种方式:
ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings["StartingMonthColumn"]
希望这有帮助
答案 6 :(得分:2)
尝试重建项目 - 将App.config
的内容复制到
“&lt; YourProjectName.exe&gt; .config”在构建库中。
答案 7 :(得分:0)
在App.config中添加您运行应用程序的密钥“StartingMonthColumn”,例如在测试项目的App.config中。