在configFile中存储设置

时间:2013-09-17 17:20:29

标签: c# .net winforms settings config

尝试将所有数据保存到配置文件中,然后在运行期间将其读取并应用于我的程序 - 作为用户首选项。 完成的工作:创建新的配置文件(使用添加新元素 - >添加congif文件)。在这个文件中放入简单的代码

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSetting>
        <add Key="Volume" value="100" />
    </appSetting>
</configuration>

创建方法

之后
public int GetVolumeFromConfigFile()
    {
        return  Convert.ToInt32(ConfigurationManager.AppSettings.Get("Volume"));
    }

并在主程序中称之为

Value = (MyClass.GetVolumeFromConfigFile());

但这不起作用。 (在debaggin期间,它什么都没有返回)

认为这可能是一些原因:

  1. 我需要添加(我现在不以什么方式)使用什么配置文件,因为我有几个文件* .config - 一个默认(App.exe.config,另一个 - 我创建的)< / LI>
  2. 我使用不正确的方法从配置文件中获取值
  3. 此外,我还介绍了另一种存储应用设置的方法,例如将其存储在* .settings文件中 我做错了什么方法和首选方法?

    其他信息 - 使用net 4.0

    修改

    删除我的配置文件,并添加到现有的几行(在strong&gt;中)

    <?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="PlayDemo.SettingsPlayIt" 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>
            <PlayDemo.SettingsPlayIt>
                <setting name="Volume" serializeAs="String">
                    <value>10</value>
                </setting>
            </PlayDemo.SettingsPlayIt>
        </userSettings>
    

    这里我添加了我的密钥

        <appSetting>
            <add key="Volume" value="100" />
        </appSetting>
    
    </configuration>
    

3 个答案:

答案 0 :(得分:3)

试试这个:

<?xml version="1.0" encoding="utf-8" ?>
   <configuration>
      <appSettings>
         <add key="Volume" value="100" />
      </appSettings>
   </configuration>

return  Convert.ToInt32(ConfigurationManager.AppSettings["Volume"]);

appSettings是键值对,因此您可以像在词典中使用值一样访问它

答案 1 :(得分:1)

如果您想使用单独的配置文件,请尝试以下方法:

Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
config.AppSettings.File = "yourFileName"'tell Configuration what file to read
config.Save(ConfigurationSaveMode.Modified) ' save the Configuration setting
ConfigurationManager.RefreshSection("appSettings") ' update just the <appSettings> node

答案 2 :(得分:0)

我非常喜欢以下技术,使用ConfigurationSection。这使您可以轻松地操作配置。但它更具体。

http://msdn.microsoft.com/en-us/library/2tw134k3%28v=vs.90%29.aspx