Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Пространство имен System.Configuration

Пространство имен System.Configuration

До этого времени все файлы *.config, показанные в этой главе, состояли из из­вестных XML-элементов, по которым среда CLR выясняла адреса внешних компо­новочных блоков. Вдобавок кэтим элементам файл конфигурации клиента может содержать и специальные данные приложения, не имеющие никакого отношения к установке связей. С учетом сказанного становится ясно, почему в .NET Framework используется пространство имен, которое позволяет считывать данные файла кон­фигурации клиента программными средствами.

Пространство имен Sуstem.Configuration определяет небольшой набор типов, которые можно использовать для чтения пользовательских установок из файла *.config клиента. Эти пользовательские установки должны задаваться в контексте элемента <appSettings>. Элемент <appSettings> может содержать произвольное числа элементов <add>, определяющих пары ключей и значений, которые могут извлекаться программными средствами.

Предположим, что у нас есть файл *.сonfig дата консольного приложения AppConfigReaderApp, в котором определяется строка связи с базой данных и ука­затель на данные timesToSayHello.

<configuration>
 <appSettings>
  <add key="AppConStr" value="server=localhost;uid='sa';pwd='';database=Cars" />
  <add key="timeToSayHello" value="8" />
 </appSettings>
</сonfiguration>

Чтение этих значений для использования приложением клиента осуществляет­ся простым вызовом метода экземпляра GetValue() типа System.Configuration. AppSettingsReader. Как показывает следующий пример программного кода, пер­вый параметр: GetValue() задает имя ключа в файле *.config, а второй параметр представляет соответствующий тип ключа (получаемый в C# в результате применении операции typeof).

class Program {
 static void Main(string[] args) {
  // Создание средства чтения и получение строки соединения.
  AppSettingsReader ar = new AppSettingsReader();
  Console.WriteLine(ar.GetValue("appConstr", typeof(string)));
  // Получение числа повторений приветствия и выполнение.
  int numbOfTimes = (int)ar.GetValue("timesToSayHello", typeof(int));
  for (int i = 0; i ‹ numbOfTimes; i++) Console.WriteLine("Йо!");
  Console.ReadLine();
 }
}

Тип класса AppSettingsReader не задает способа записи специальных данных приложения в файл *.config. На первый взгляд это может показаться ограничением, но на самом деле это вполне логично. Сама идея создания файла *.config заключается в том, чтобы он содержал доступные только для чтения данные, которые должны помочь среде CLR (а также типу AppSettingsReader) правильно установить приложение на соответствующей машине.

Замечание. В ходе нашего обсуждения ADO.NET (см. главу 22) вы узнаете об элементе конфигурации ‹connectionStrings› и о других типах пространства имен System.Configuration. Эти элементы, появившиеся в .NET 2.0, предлагают стандартный метод обработки строк соединений.

Исходный код. Проект AppConfigReaderApp размещен в подкаталоге, соответствующем главе 11.

Оглавление книги


Генерация: 2.351. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз