我有一个包含它的App.config文件(由Visual Studio生成,无需手动编辑):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="FaxMonitorCSharp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<userSettings>
<FaxMonitorCSharp.Properties.Settings>
<setting name="BaseFolder" serializeAs="String">
<value>C:\IncFaxesTest</value>
</setting>
</FaxMonitorCSharp.Properties.Settings>
</userSettings>
</configuration>
如何在C#中检索BaseFolder
的值?我试过了:
string g_fax_loc = System.Configuration.ConfigurationSettings.AppSettings["BaseFolder"];
但是我收到了一个过时的方法警告,而是要求我使用一个非常长的方法名称,其中包含!
。
我错过了什么吗?
答案 0 :(得分:4)
The configuration file was generated automatically by VS after I used the "Properties" screen ...
如果您是从属性屏幕生成的,那么当您使用该屏幕时,应该使用visual studio为您生成的强类型数据类型。
string baseFolder = FaxMonitorCSharp.Properties.Settings.Default.BaseFolder;
或者如果您在文件中包含using FaxMonitorCSharp.Properties;
,您将使用它,您可以将其缩短为
var baseFolder = Settings.Default.BaseFolder;
作为一个FYI,我可以看到该设置位于userSettings
部分,如果您希望在下次打开程序时保存并重新加载作业,您还需要调用{{1}在settings类上,将更改写入硬盘驱动器。
Save()