Домены приложений

Последнее обновление: 22.02.2022

При запуске приложения, написанного на C#, операционная система создает процесс, а среда CLR создает внутри этого процесса логический контейнер, который называется доменом приложения и внутри которого работает запущенное приложение.

Для управления домена платформа .NET предоставляет класс AppDomain. Рассмотрим некоторые основные методы и свойства данного класса:

  • Свойство BaseDirectory: базовый каталог, который используется для получения сборок (как правило, каталог самого приложения)

  • Свойство CurrentDomain: домен текущего приложения

  • Свойство FriendlyName: имя домена приложения

  • Свойство SetupInformation: представляет объект AppDomainSetup и хранит конфигурацию домена приложения

  • Метод ExecuteAssembly(): запускает сборку exe в рамках текущего домена приложения

  • Метод GetAssemblies(): получает набор сборок .NET, загруженных в домен приложения

Получим имя и базовый каталог текущего домена и выведем все загруженные в домен сборки:

using System.Reflection;

AppDomain domain = AppDomain.CurrentDomain;
Console.WriteLine($"Name: {domain.FriendlyName}");
Console.WriteLine($"Base Directory: {domain.BaseDirectory}");
Console.WriteLine();

Assembly[] assemblies = domain.GetAssemblies();
foreach (Assembly asm in assemblies)
    Console.WriteLine(asm.GetName().Name);

Консольный вывод:

Name: HelloApp
Base Directory: /Users/eugene/Projects/HelloApp/HelloApp/bin/Debug/net6.0/

System.Private.CoreLib
HelloApp
System.Runtime
System.Console
System.Threading
Microsoft.Win32.Primitives
System.Collections
System.Memory
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850