Использование Visual C# для хранения и извлечения пользовательских сведений из файла конфигурации приложения
В этой статье описывается, как хранить пользовательские сведения из файла конфигурации, которые можно получить позже во время выполнения связанным приложением. Это полезно, когда необходимо определить данные, связанные с приложением.
Исходная версия продукта: Visual C#
Исходный номер базы знаний: 815786
Требования
В следующем списке перечислены рекомендуемые оборудование и программное обеспечение, которые вам нужны.
- Microsoft Windows
- Visual C#
В этой статье предполагается, что вы знакомы со следующими разделами:
- язык XML
- Файлы конфигурации .NET
Создание консольного приложения, считывающего файл конфигурации
Параметры приложения можно хранить в файле конфигурации, связанном с приложением. Файлы конфигурации сохраняются в формате XML.
Пространства System.Configuration
имен и System.Collections.Specialized
в платформа .NET Framework включают необходимые классы для получения сведений из файла конфигурации приложения .NET во время выполнения.
Чтобы создать консольное приложение, считывающее содержимое связанного файла конфигурации во время выполнения, выполните следующие действия.
Запустите Visual Studio .NET или Visual Studio.
В меню Файл выберите пункт Создать, а затем выберите Проект.
Выберите Visual C# в разделе Типы проектов, а затем выберите Консольное приложение в разделе Шаблоны. Присвойте проекту имя ConConfig. По умолчанию Visual C# создает класс с именем Program.
Примечание.
В Visual Studio .NET выберите Проекты Visual C# в разделе Типы проектов, а затем выберите Консольное приложение в разделе Шаблоны. Присвойте проекту имя ConConfig. По умолчанию Visual C# создает класс с именем Class1.
Убедитесь, что окно Обозреватель решений отображается. Если он не отображается, нажмите сочетание клавиш CTRL+ALT+L.
В Обозреватель решений щелкните правой кнопкой мыши имя проекта, выберите Добавить, а затем — Создать элемент.
В списке Добавить новый элемент выберите XML-файл.
В текстовом поле Имя введите App.configи нажмите кнопку Добавить.
Файл конфигурации приложения можно использовать для сбора пользовательских параметров приложения, сохраненных в формате "ключ-значение". Элементы можно включить
<add>
в<appSettings>
раздел связанного файла конфигурации. Каждая пара "ключ-значение" имеет один<add>
элемент. Элемент<add>
имеет следующий формат:<add key="Key0" value="0" />
<appSettings>
Добавьте раздел с<add>
элементами в файл конфигурации между<configuration>
тегами и</configuration>
.Например, следующий файл конфигурации содержит раздел, указывающий
<appSettings>
три пары "ключ-значение":<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="Key0" value="0" /> <add key="Key1" value="1" /> <add key="Key2" value="2" /> </appSettings> </configuration>
В Обозреватель решений дважды щелкните Program.cs, чтобы отобразить окно кода. Добавьте следующие инструкции в модуль кода.
Примечание.
Эти инструкции должны отображаться перед любыми другими операторами в файле.
using System.Configuration; using System.Collections.Specialized;
Добавьте ссылку на System.Configuration.dll , выполнив следующие действия.
- В меню Проект выберите Добавить ссылку.
- В диалоговом окне Добавление ссылки выберите вкладку .NET .
- Найдите и выберите имя
System.Configuration
компонента . - нажмите OK.
Чтобы сохранить значение из ключа файла конфигурации в
<appSettings>
разделе файла конфигурации, объявите строковую переменную вMain
разделе следующим образом:string sAttr;
Чтобы получить значение для указанного ключа из
<appSettings>
раздела файла конфигурации, используйтеGet
методAppSettings
свойстваConfigurationManager
класса . КлассConfigurationManager
находится вSystem.Configuration
пространстве имен.AppSettings.Get
Когда метод получает строковый входной параметр, содержащий ключ, приложение получает значение, связанное с ключом.Следующий код извлекает значение атрибута
Key0
из связанного файла конфигурации. Затем код помещает это значение в строковуюsAttr
переменную. Если ключ не существует для этого значения, ничего не сохраняется вsAttr
.sAttr = ConfigurationManager.AppSettings.Get("Key0");
Чтобы отобразить значение, полученное приложением, в окне консоли используйте
Console.WriteLine
следующую команду:Console.WriteLine("The value of Key0 is "+sAttr);
Вы можете использовать одну ссылку на
AppSettings
свойство для получения всех пар "ключ-значение" в<appSettings>
разделе . При использованииAppSettings
свойства приложение возвращает все связанные пары "ключ-значение". Эти пары хранятся в типеNameValueCollection
. СодержитNameValueCollection
записи "ключ-значение" для каждого ключа, извлекаемого приложением. КлассNameValueCollection
находится вSystem.Collections.Specialized
пространстве имен.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
Свойство
AllKeys
ссылаетсяNameValueCollection
на массив строк, содержащий запись для каждого ключа, извлекаемого приложением. Используйте конструкцию foreach для итерации по массивуAllKeys
для доступа к каждому ключу, извлекаемого приложением. Каждая запись ключа вAllKeys
является строковым типом данных.foreach
Внутри конструкции используйтеConsole.WriteLine
для отображения ключа и связанного с ним значения в окне Консоли. Текущий ключ, который обрабатывает приложение, находится вs
. Используйте его в качестве индекса в дляsAllNameValueCollection
получения связанного значения.foreach (string s in sAll.AllKeys) Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s)); Console.ReadLine();
Полный список кода
using System;
using System.Configuration;
using System.Collections.Specialized;
namespace ConConfig
{
class Program
{
static void Main(string[] args)
{
string sAttr;
// Read a particular key from the config file
sAttr = ConfigurationManager.AppSettings.Get("Key0");
Console.WriteLine("The value of Key0: " + sAttr);
// Read all the keys from the config file
NameValueCollection sAll;
sAll = ConfigurationManager.AppSettings;
foreach (string s in sAll.AllKeys)
Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));
Console.ReadLine();
}
}
}
Примечание.
Этот код предназначен для платформа .NET Framework 2.0. Если вы используете платформа .NET Framework 1.0 или платформа .NET Framework 1.1, измените все экземпляры класса на ConfigurationManager
ConfigurationSettings
.
Полный список файлов конфигурации (ConConfig.exe.config)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Key0" value="0" />
<add key="Key1" value="1" />
<add key="Key2" value="2" />
</appSettings>
</configuration>
Убедитесь, что он работает
Нажмите клавишу F5, чтобы запустить код. В окне Консоли должны отображаться пары "ключ-значение" из <appSettings>
раздела связанного файла конфигурации следующим образом:
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
Устранение неполадок
Файл конфигурации сохраняется в формате XML. Убедитесь, что вы соблюдаете все правила синтаксиса XML. Помните, что в XML учитывается регистр. Если XML-код неправильно сформирован или элемент написан с ошибкой
System.Configuration.Configuration
, вы получите исключение.Например, при добавлении ключевого атрибута
<add>
элемента с прописными буквами K вместо нижнего регистра k или если<appSettings>
раздел отображается как<AppSettings>
(с прописными буквами A вместо нижнего регистра), вы получите сообщение об ошибке.Файл конфигурации должен быть сохранен в той же папке, что и связанное с ним приложение.
Для имени файла конфигурации необходимо использовать следующий синтаксис:
<ApplicationName>.<ApplicationType>.configГде <ApplicationName> — это имя приложения. <ApplicationType> — это тип приложения, например
.exe
. И.config
является обязательным суффиксом.
Ссылки
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по