2013-09-17 5 views
0

Попробуйте сохранить все данные в файле конфигурации, а затем прочитайте его и примените к моей программе во время работы - в качестве пользовательского предпочтения. Выполнено: создайте новый файл конфигурации (с помощью Добавить новый элемент-> добавить файл congif). В этом файле поместить простой кодСохранение настроек в configFile

<?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, а другой - что я создал)
  2. Я использую неправильный метод, чтобы получить значение из конфигурационного файла

также я читал о какой-то другой способ для хранения настроек приложения , как хранить его в файле * .settings Что я делаю неправильно и что метод предпочтительный?

Дополнительная информация - использовать чистый 4,0

EDIT

Удалить мой конфигурационный файл, и добавить существует несколько строк (в сильной>)

<?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

попробуйте следующее:

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

и

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

в AppSettings являются ключевыми пар значений, так что вы можете получить доступ к нему, как вы бы значение в словаре

+0

и как об использовании нескольких конфигурационного файла - это я должен «сказать» программка в том, что файл моего приложения должна искать необходимый ключ? или он выполняет поиск во всех файлах конфигурации? – gbk

+0

Я бы посмотрел на [этот вопрос] (http://stackoverflow.com/questions/11761852/multiple-config-file-in-c-sharp) – Jonesopolis

+0

попробуй ничего не изменить – gbk

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 
Смежные вопросы