На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Настройки приложения C#: определение, пример


Существуют различные способы сохранения настроек для всего приложения и конкретных пользователей вне программы. Один из них заключается в настройке параметров приложения в проекте Visual Studio. Они допускают строго типизированную конфигурацию, которую можно изменить без перекомпиляции.

Что такое настройки приложения?

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

С помощью настроек приложения можно легко создать конфигурацию как для всего приложения, так и для конкретного пользователя. Это именованные значения, которые можно создать с помощью Visual Studio. Параметры добавляются в файл конфигурации сборки, и создаются классы, которые позволяют настраивать параметры в коде как строго типизированные свойства.

Использование настроек приложения

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

Создание настроек приложения

Настройки приложения можно настроить вручную в файле app.config. Однако гораздо проще выполнить эту настройку с помощью свойств проекта Visual Studio. Чтобы просмотреть параметры приложения, щелкните правой кнопкой мыши имя проекта в Обозревателе решений и выберите пункт Свойства в появившемся контекстном меню. В названиях разделов слева от окна свойств выберите Настройки.

При первом просмотре настроек приложения для проекта может появиться сообщение "Этот проект не содержит файла настроек по умолчанию. Нажмите здесь, чтобы создать его". Нажмите на это сообщение, чтобы создать файл настроек и просмотреть таблицу настроек приложения, показанную ниже.



Параметры приложения Visual Studio

Visual Studio позволяет создавать по одному параметру приложения на строку. Для каждой настройки требуется указать четыре значения:

  • Имя. Столбец Имя используется для присвоения параметру уникального имени. Это имя станет именем свойства, которое будет использоваться для доступа к значению параметра.
  • Тип. Все настройки приложения строго типизированы. Этот столбец используется для указания типа свойства настройки.
  • Область. Доступны два параметра области, позволяющие указать, хотите ли вы создать настройку для всего приложения или для конкретного пользователя.
  • Значение. Последний столбец используется для указания значения по умолчанию для параметра.
Для примера программы добавьте в сетку один параметр. Название параметра должно быть "TestSetting". Установите тип как string, область применения в приложение и значение "Тест". Как только настройка будет создана, закройте окно свойств. Вы должны увидеть, что в проект добавлен файл app.config. Если вы просмотрите содержимое этого файла, вы найдете сведения, которые вы создали, в таблице настроек приложения.

Примечание: После компиляции приложения файл app.config будет переименован в соответствии с именем сборки; в этом случае AppSettings.exe.config. Вы сможете отредактировать этот текстовый файл, чтобы изменить настройки без перекомпиляции.

Чтение настроек приложения

Создание файла настроек приложения по умолчанию добавляет новое пространство имен с именем "Свойства" в пространство имен проекта по умолчанию. Внутри нового пространства имен находится класс, предоставляющий доступ к новым свойствам. Чтобы продемонстрировать, вернитесь в редактор кода для класса, содержащего основной метод программы. Чтобы упростить доступ к новому пространству имен, добавьте следующую директиву using в начало кода:

using AppSettings.Properties;
Теперь мы можем вывести содержимое параметра приложения, обратившись к свойству класса, созданного Visual Studio. Чтобы вывести текст на консоль, добавьте следующий код в метод Main:

Console.WriteLine(Settings.Default.TestSetting);
Console.ReadLine();
Запустите программу, чтобы увидеть значение параметра приложения, выведенное на консоль. Вы также можете попробовать выполнить скомпилированный исполняемый файл и изменить значение в файле AppSettings.exe.config. Это покажет, что значение можно изменить без перекомпиляции.

Создание пользовательских yастроек

Если вы попытаетесь присвоить новое значение параметру для всего приложения, код не будет скомпилирован. Чтобы увидеть это, измените код в основном методе следующим образом. При попытке компиляции отображается сообщение об ошибке, указывающее, что свойство доступно только для чтения.

Console.WriteLine(Settings.Default.TestSetting);
Settings.Default.TestSetting = Console.ReadLine();
Значения для всего приложения не могут быть изменены во время выполнения. Однако пользовательские настройки могут быть изменены во время выполнения для отдельного пользователя. Чтобы изменить набор тестов на пользовательский, вернитесь к свойствам проекта и измените значение области для параметра на "Пользователь". Теперь код будет скомпилирован, но изменения в настройках будут существовать только до тех пор, пока приложение не прекратит выполнение. Для сохранения пользовательских настроек между сеансами необходимо использовать метод Сохранения. Чтобы попробовать это, добавьте следующую строку в конец основного метода:

Settings.Default.Save();
Попробуйте выполнить скомпилированную исполняемую версию программы несколько раз, каждый раз вводя новую строку для параметра. Вы должны увидеть, что введенное значение сохраняется между запусками программного обеспечения. Однако, если вы просмотрите файл AppSettings.exe.config в папке исполняемого файла, вы увидите, что настройки не изменяются. Этот файл продолжает содержать значения по умолчанию для каждого настраиваемого элемента, гарантируя, что новые пользователи программы не унаследуют изменения, внесенные другими пользователями. Пользовательские значения хранятся в новом файле в папке пользователя. Точный путь к папке определяется операционной системой.

Сброс пользовательских настроек

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

Settings.Default.Reset();




Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, си шарп, настройки, Visual Studio, .NET

Читайте также:




Форматы изображений
Урок 18. Сборщик мусора и метод finalize в Java


© upread.ru 2013-2021
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.