Список доменов приложения процесса
Список доменов приложения процесса
Для примера программного взаимодействия с доменами приложений .NET предположим, что у нас есть новое консольное приложение C# с именем AppDomainManipulator, в рамках которого определяется статический метод PrintAllAssembliesInAppDomain(). Этот вспомогательный метод использует AppDomain.GetAssemblies(), чтобы получить список всех двоичных файлов .NET, выполняющихся в рамках данного домена приложения.
Соответствующий список представляется массивом типов System.Reflection. Assembly, поэтому необходимо использовать пространство имен System. Reflection (см. главу 12). Получив массив компоновочных блоков, вы выполняете цикл по элементам массива и печатаете понятное имя и версию каждого модуля.
public static void PrintAllAssembliesInAppDomain(ApsDomain ad) {
Assembly[] loadedAssemblies = ad.GetAssemblies();
Console.WriteLine("*** Компоновочные блоки в рамках {0} *** ", ad.FriendlyName);
foreach (Assembly a in loadedAssemblies) {
Console.WriteLine("-› Имя: {0}", a.GetName().Name);
Console.WriteLine("-› Версия: {0} ", a.GetName().Version);
}
}
Теперь обновим метод Main(), чтобы перед вызовом PrintAllAssembliesInAppDomain() получить ссылку на текущий домен приложения, используя свойство AppDomain.CurrentDomain.
Чтобы сделать пример более интересным, метод Main() открывает окно сообщения Windows Forms (для этого среда CLR должна загрузить компоновочные блоки System.Windows.Forms.dll, System.Drawing.dll и System.dll, так что не забудьте установить ссылки на эти компоновочные блоки и соответственно изменить набор операторов using).
static void Main(string[] args) {
Console.WriteLine("***** Чудесное приложение AppDomain ***** ");
// Чтение информации для текущего AppDomain.
AppDomain defaultAD= AppDomain.CurrentDomain;
MessageBox.Show('Привет");
PrintAllAssembliesInAppDomain(defaultAD);
Console.ReadLine();
}
На рис. 13.6 показан соответствующий вывод (номера версий у вас могут быть другими).

Рис. 13.6. Перечень компоновочных блоков в рамках текущего домена приложений
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Список всех доступных доменов в локальной сети
Список всех доступных доменов в локальной сети В листинге 11.1 приведен JScript-сценарий ListDomains.js, в котором создается список всех доменов, доступных в сети (рис. 11.1) Рис. 11.1. Список всех имеющихся в сети доменовВ рассматриваемом сценарии производятся следующие действия.
Организация виртуальных доменов
Организация виртуальных доменов Ранее в данной главе рассматривалось применение сервера Apache для работы с Web- страницами, принадлежащими одному Web-узлу. Возможно ли разместить на одном компьютере несколько Web-узлов? Положительный ответ на данный вопрос очевиден, так как
Использование виртуальных доменов
Использование виртуальных доменов Наличие виртуальных доменов позволяет Web-серверу по-разному обрабатывать запросы, в зависимости от имен, указанных в них. (Чтобы к Web-серверу можно было обращаться по разным именам, необходимо создать несколько записей в
Конфигурация виртуальных доменов
Конфигурация виртуальных доменов Существуют два способа организации работы с виртуальными доменами. Один из них состоит в том, что, в зависимости от имени, указанного в запросе, в качестве корневого каталога документов выбираются различные каталоги. Второй способ
12.8 Локальные и глобальные серверы имен доменов
12.8 Локальные и глобальные серверы имен доменов В изолированной сети TCP/IP можно применять любое бесплатное программное обеспечение DNS для создания первичной базы данных трансляции имен и репликации этой базы данных в определенные точки сети. Все пользовательские запросы
B.4 Система именования доменов
B.4 Система именования доменов Служба регистрации содержит информацию о Domain Name System (DNS) в своем архиве пересылки файлов, доступном при выборе на домашней странице этой организации FTP Archive с последующим выбором каталога domain или
Права и уровни доменов
Права и уровни доменов Доменов в Интернете очень много. Особое значение имеют домены первого уровня, среди которых принято особо выделять домены общего назначения (или, как их иногда называли раньше, домены общего пользования) и национальные. Например, к доменам общего
Тысячи доменов
Тысячи доменов Сколько имен внутри домена первого уровня может находиться под контролем одного администратора? Пять? Десять? Пределы определяются только правилами регистрации, действующими внутри домена. Например, в некоторых национальных доменах на число имен,
Выражения в значениях по умолчанию для доменов
Выражения в значениях по умолчанию для доменов Yaffil позволяет использовать сложные выражения для значений по умолчанию в доменах:CREATE DOMAIN NEW_DOMAIN AS INTEGER DEFAULT (GEN_ID(NEW_GENERATOR, 1))Подобная возможность позволяет не писать дополнительные триггера для выполнения схожих
Список множества потоков процесса
Список множества потоков процесса Тип класса Process обеспечивает и способ программного получения множества всех потоков, используемых данным потоком в настоящий момент. Множество потоков представляется строго типизованной коллекцией ProcessThreadCollection, которая содержит
Программное создание новых доменов приложения
Программное создание новых доменов приложения Напомним, что один процесс может содержать множество доменов приложения, И хотя вам в программном коде вряд ли понадобится вручную создавать домены приложения, вы имеете возможность сделать это с помощью статического
Программная выгрузка доменов приложения
Программная выгрузка доменов приложения Важно понимать, что среда CLR не позволяет выгружать отдельные компоновочные блоки .NET. Однако, используя метод AppDomain.Unload(), вы можете избирательно выгрузить домен приложения из объемлющего процесса. При этом домен приложения
Взаимосвязь процессов, доменов приложений, контекстов и потоков
Взаимосвязь процессов, доменов приложений, контекстов и потоков В предыдущей главе обсуждалось понятие потока, который был определен, как путь исполнения в рамках выполняемого приложения. И хотя многие приложения .NET имеют только один поток и, тем не менее, оказываются
Изменение определения столбцов и доменов
Изменение определения столбцов и доменов В обоих диалектах вы можете изменять тип данных доменов и столбцов в таблицах. Если вы выполняете миграцию базы данных из другой СУБД, это может быть полезным. Существуют некоторые ограничения при изменении типа данных.* Firebird не
Использование доменов в определении столбца
Использование доменов в определении столбца Пример В некоторой базе данных есть домен SYSUSER, размером до 31 символа, имеющий значение по умолчанию, получаемое из контекстной переменной CURRENT_USER:CREATE DOMAIN SYSUSER AS VARCHAR(31) DEFAULT CURRENT_USER;Объявляемая таблица содержит столбец UPDATED_BY,