Класс AppDomain (Прикладная область). События AppDomain (Прикладная область).
Класс AppDomain (Прикладная область) реализует абстракцию прикладной области. Пример AppDomain (Прикладная область) иллюстрирует использование прикладных областей. Этот класс имеет статические методы для создания и разгрузки прикладных областей:
AppDomain *domain = AppDomain::CreateDomain( "CreatedDomain2", 0, 0); AppDomain::Unload(domain); // разгрузить область
Несмотря на то, что метод CreateDomain перегружен, следующая сигнатура иллюстрирует изоляцию прикладных областей:
static AppDomain CreateDomain(// статический String *friendlyName, // Строка Evidence *securitylnfo, AppDomainSetup *info);
Параметр Evidence (Данные) – коллекция ограничений защиты для прикладной области. Этот параметр мы обсудим более подробно в главе 13 "Защита"; сейчас же мы отметим, что создатель прикладной области может модифицировать коллекцию, чтобы управлять разрешениями выполняющейся прикладной области. Параметр AppDomainSetup определяет параметры прикладной области. В параметрах указывается путь к конфигурационному файлу прикладной области и информация о том, куда загружены приватные сборки.
Поэтому прикладные области могут быть сконфигурированы независимо одна от другой. Изоляция кода, изоляция параметров и управление защитой в совокупности гарантируют, что прикладные области остаются независимы друг от друга.
События AppDomain (Прикладная область)
Для поддержки изоляции приложений класс AppDomain (Прикладная область) позволяет устанавливать обработчики для следующих событий:
- выгрузка прикладной области;
- завершение процесса;
- возникновение необрабатываемого исключения;
- сбой при попытке разрешить сборки, типы или ресурсы.