我试图使用代码从下面的app.config文件中读取StartingMonthColumn和CategoryHeadingColumn
ConfigurationSettings.AppSettings["StartingMonthColumn"]
Run Code Online (Sandbox Code Playgroud)
但它返回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>
Run Code Online (Sandbox Code Playgroud)
Jam*_*mes 170
配置设置 .AppSettings已过时,您应该使用Configuration Manager .AppSettings(您需要添加对System.Configuration的引用)
int value = Int32.Parse(ConfigurationManager.AppSettings["StartingMonthColumn"]);
Run Code Online (Sandbox Code Playgroud)
如果您仍然无法在应用设置中阅读,请检查您的app.config文件是否正确命名.具体来说,它应该根据执行程序集命名,即MyApp.exe.config,应该驻留在同一目录中MyApp.exe.
Bit*_*der 18
不推荐使用 ConfigurationSettings.AppSettings ,请参见此处:
http://msdn.microsoft.com/en-us/library/system.configuration.configurationsettings.appsettings.aspx
那说,它应该仍然有效.
只是一个建议,但您确认您的应用程序配置是您的可执行文件正在使用的配置吗?
尝试附加调试器并检查以下值:
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
Run Code Online (Sandbox Code Playgroud)
然后打开配置文件并验证该部分是否符合您的预期.
小智 17
尝试:
string value = ConfigurationManager.AppSettings[key];
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请检查: 从App.Config中读取密钥
这个:
Console.WriteLine( "StartingMonthColumn is {0}", ConfigurationManager.AppSettings["StartingMonthColumn"]);
Run Code Online (Sandbox Code Playgroud)
对我来说很好.
请注意,ConfigurationManager它位于System.Configuration命名空间中(因此您可能需要一个using System.Configuration;语句),并且由于您读入的内容具有字符串类型,因此您需要解析您读入的内容以将其用作数字.
此外,请确保system.configuration.dll在项目或构建脚本中设置为引用.
原因很简单,您的调用ConfigurationSettings.AppSettings不会返回所需的配置文件.请尝试以下任何一种方式:
ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings["StartingMonthColumn"]希望这可以帮助
| 归档时间: |
|
| 查看次数: |
358381 次 |
| 最近记录: |