Курс лекций для студентов специальности i-31 03 04 Информатика всех форм обучения Минск 2010



страница22/29
Дата09.08.2019
Размер0.64 Mb.
#126834
ТипКурс лекций
1   ...   18   19   20   21   22   23   24   25   ...   29

2.26. ФАЙЛЫ КОНФИГУРации


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

Платформа .NET предлагает унифицированный подход к конфигурированию, основанный на использовании конфигурационных XML-файлов. Существует один глобальный файл конфигурации с параметрами, относящимися к платформе в целом. Этот файл называется machine.config и располагается в каталоге установки .NET Framework. Любая сборка может иметь локальный конфигурационный файл. Он должен носить имя файла сборки с добавлением расширения .config и располагаться в одном каталоге со сборкой (то есть, файл конфигурации для main.exe должен называться main.exe.config2). Параметры, описанные в локальных конфигурационных файлах, «накладываются» на параметры из файла machine.config.

Проанализируем общую схему любого файла конфигурации. Корневым XML-элементом файла всегда является элемент . Он может включать следующие дочерние элементы:


  •  описывает разделы конфигурации (в том числе пользовательские);

  •  пользовательские параметры конфигурации;

  •  строки подключения к базам данных;

  • –параметры запуска CLR (поддерживаемые версии);

  • – параметры времени выполнения (регулируют способ загрузки сборок и работу сборщика мусора);

  • – совокупность диагностических параметров, которые задает способ отладки приложений, перенаправляют сообщения отладки и т. д.;

  • – настройка параметров работы с сетью;

  •  настройка элементов технологии WCF;

  • – параметры конфигурации приложений ASP.NET.

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

  • – добавляет новый ключ и значение в коллекцию пользовательских конфигурационных данных;

  • – удаляет существующий ключ и значение из коллекции конфигурационных данных;

  • – очищает коллекцию конфигурационных данных.













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













пользовательская секция -->







Если планируется использование собственного обработчика конфигурационного раздела, следует создать класс, производный от ConfigurationSection. В классе определяются открытые свойства, соответствующие атрибутам или вложенным элементам конфигурации. Этим свойствам назначается специальный атрибут [ConfigurationProperty]. Следующий код показывает пример пользовательского обработчика CustomConfig.

namespace Common

{

public class CustomConfig : ConfigurationSection



{

[ConfigurationProperty("copyright", IsRequired = true)]

public Element Copyright

{

get { return (Element) base["copyright"]; }



}

}
public class Element : ConfigurationElement

{

[ConfigurationProperty("company", IsRequired = true)]



public string Company

{

get { return (string) base["company"]; }



set { base["company"] = value; }

}
[ConfigurationProperty("year", IsRequired = true)]

public int Year

{

get { return (int) base["year"]; }



set { base["year"] = value; }

}

}



}

Для программного доступа к конфигурационным данным текущего приложения используется статический класс ConfigurationManager из пространства имён System.Configuration1. Класс имеет следующие элементы:



    • AppSettings  коллекция-словарь пользовательских параметров;

    • ConnectionStrings  словарь пользовательских строк подключения к БД;

    • GetSection()  извлекает указанный раздел конфигурации;

    • OpenExeConfiguration()  открывает указанный файл конфигурации в качестве объекта Configuration;

    • OpenMachineConfiguration()  открывает файл machine.config;

    • RefreshSection()  перечитывает указанный раздел конфигурации.

Покажем пример работы с коллекцией данных и пользовательским разделом конфигурации:

string c = ConfigurationManager.AppSettings["company"];

var s = (CustomConfig)ConfigurationManager.GetSection("custom");

string company = s.Copyright.Company;

int year = s.Copyright.Year;

Console.WriteLine("Copyright © {0} by {1}", year, company);

Метод ConfigurationManager.OpenExeConfiguration() позволяет загрузить конфигурацию заданной сборки в виде объекта Configuration. Это класс содержит коллекции, описывающие секции конфигурационного файла, а также методы для записи конфигурационного файла.

// получаем конфигурацию сборки common.exe

Configuration cfg =

ConfigurationManager.OpenExeConfiguration("common.exe");

// находим секцию и изменяем данные в ней

var section = (CustomConfig) cfg.Sections["custom"];

section.Copyright.Year = 2012;

// обновляем конфигурацию

cfg.Save();

При работе в Visual Studio настройки приложения можно создать при помощи диалога в окне свойств проекта (Project | Properties | Settings). Для каждого параметра указывается имя, тип и область видимости (глобальная или локальная для конкретного пользователя).



appsettings.png

Рис. 4. Редактирование параметров приложения.

Visual Studio генерирует для работы с настройками класс Settings, размещённый в подпространстве имён Properties. Параметры настройки доступны через свойство Settings.Default. Если у параметра локальная область видимости, его можно не только прочитать, но и изменить, а затем сохранить.

Console.WriteLine(Settings.Default.Company);

Console.WriteLine(Settings.Default.Year);

Settings.Default.Year = 2010;

Settings.Default.Save();


Каталог: images
images -> В списке студентов (или магистрантов)
images -> Н. И. Сулейманов Комплект контрольно-оценочных средств для оценки результатов освоения профессионального модуля разработан на основе Федерального государственного образовательного стандарта среднего профессионального
images -> По направлению подготовки
images -> Добавить гаджеты. Добавление гаджетов
images -> Техническое задание № apnip/C. 2/CS/Ind/01 Международный консультант по улучшенной производительности орошаемого земледелия
images -> Комплект контрольно-оценочных средств по профессиональному модулю пм. 01 Техническое обслуживание и ремонт автотранспорта


Поделитесь с Вашими друзьями:
1   ...   18   19   20   21   22   23   24   25   ...   29




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница