检索App.config"设置"值?

时间:2015-01-08 19:50:23

标签: c# xml

我有一个包含它的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"];

但是我收到了一个过时的方法警告,而是要求我使用一个非常长的方法名称,其中包含!

我错过了什么吗?

1 个答案:

答案 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()