я уже ключ называется «Alert_Sound_File» в моем App.Config
который выглядит следующим образом:Сохранение SoundFile от кнопки к App.Config
<setting name="Alert_Sound_File" serializeAs="String">
<value />
</setting>
Это то, что моя кнопка выглядит следующим образом:
public OpenFileDialog dialog1 = new OpenFileDialog();
private void browseSoundToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult result = dialog1.ShowDialog();
dialog1.Title = "Browse to find sound file to play first sound";
dialog1.InitialDirectory = @"c:\";
dialog1.Filter = "Wav Files (*.wav)|*.wav";
dialog1.FilterIndex = 2;
dialog1.RestoreDirectory = true;
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
app.Settings["Alert_Sound_File"].Value = dialog1.FileName;
config.Save(ConfigurationSaveMode.Modified);
}
текущая ошибка я получаю:
«ссылка на объект не указывает на экземпляр объекта.»
Но dialog1.FileName
установлено в кнопку, как я получаю возвращаемое значение null?
Я даже попытался это, чтобы проверить & это не спасает в мой App.Config
:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
app.Settings.Add("y", "this is Y");
config.Save(ConfigurationSaveMode.Modified);
UPDATE: Я добавил
<appSettings>
<add key="Alert_Sound_File" value="" />
<add key="Error_Sound_File" value="" />
К моему App.Config файл и введите это в моей кнопке:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
if (result == DialogResult.OK)
{
app.Settings["Alert_Sound_File"].Value = dialog1.FileName;
config.Save(ConfigurationSaveMode.Modified);
}
В результате я больше не получаю объектную ошибку объекта, но звуковой файл не добавляется в файл App.Config. Но у меня нет никаких ошибок!
вы получаете исключение при попытке получить значение «dialog1.FileName»? – lem2802
yes @ lem2802 не уверен, почему, поскольку он появляется сразу после того, как пользователь выбирает файл? – Havoux