SebGM2018 Ответов: 1

Почему мой список "строка"не сохраняется?


Добрый день, у меня есть список "строка", сохраненный в настройках пользователя моего приложения, Этот список должен сохранять пути к файлам openfiledialog, чтобы затем десериализовать его, но я уже вызвал метод Save (); и даже метод Upgrade (); после добавления строк в список, но эти строки не сохраняются. Почему?

Что я уже пробовал:

сохранить его:
частная ImportIcon_Click недействительным(объект отправителя, EventArgs в электронной)
{
IfSound();
openFileDialog1.Фильтр = "Аналитика Файлов (*.аналы) |*.аналы";
openFileDialog1.Множественный = истина;
if (openFileDialog1.ShowDialog() == DialogResult.ОК)
{
var Path = openFileDialog1.имя файла;
foreach (строковый файл в openFileDialog1.файловые имена)
{
Настройки.По умолчанию.FileList.Add(файл);
Настройки.По умолчанию.Сохранить();
//Настроить.По умолчанию.Обновлять();
}

1 Ответов

Рейтинг:
0

an0ther1

Проверьте тип настройки. Настройки приложения не могут быть обновлены без пользовательского обработчика - см.; Обзор Параметров Приложения | Microsoft Docs[^]
Используйте свой отладчик, если параметр определен, но не инициализирован, он будет равен null & вы не можете добавить к нему значения - код удара работает в тестовом приложении - значения переносятся при перезапуске приложения - создайте пользовательский параметр с именем TestList тестировать;

if(Properties.Settings.Default.TestList == null)
    {
        MessageBox.Show("Not initialised");
    // Create a new List and Save to Settings        
    Properties.Settings.Default.TestList = new System.Collections.Specialized.StringCollection();
        Properties.Settings.Default.Save();
    }
    else if(Properties.Settings.Default.TestList.Count > 0)
    {
        // Create a message showing the last value in the list and the count of items
        string strMsg = string.Format("List is populated\r\nLast Value: {0}\r\nCount: {1}", Properties.Settings.Default.TestList[Properties.Settings.Default.TestList.Count - 1].ToString(), Properties.Settings.Default.TestList.Count.ToString());
           
    MessageBox.Show(strMsg);
    }
    else
    {
        MessageBox.Show("Currently empty");
    }

    string[] myTest = new string[] { "Value 1", "Value 2" };
    
    foreach(string myVal in myTest)
    {
        Properties.Settings.Default.TestList.Add(myVal);
    }
    Properties.Settings.Default.Save();

    if (Properties.Settings.Default.TestList.Count > 0)
    {
        MessageBox.Show("After populate\r\n" + Properties.Settings.Default.TestList[0].ToString()
            + "\r\nCount: " + Properties.Settings.Default.TestList.Count);
    }


с уважением


SebGM2018

А Для Чего Это Нужно?, Каково Точное Решение?

an0ther1

Извините, но я не могу сказать вам, что это такое. точное решение это потому, что я не могу видеть ваш экран или получить доступ к вашему компьютеру.
Код, который вы предоставили должен сохранить в параметре с именем Список файлов если это не настройка приложения или настройка никогда не инициализируется - прочтите документацию по предоставленной ссылке и отладьте свой код, чтобы определить, какая проблема у вас есть

с уважением