Домены приложений (руководство по программированию в C#)

Обновлен: Ноябрь 2007

Домены приложений обеспечивают гибкий и безопасный метод изоляции выполняющихся приложений.

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

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

В следующем примере кода создается новый домен приложения, после чего загружается и выполняется построенная ранее сборка HelloWorld.exe, хранящаяся на диске C.

static void Main()
{
    // Create an Application Domain:
    System.AppDomain newDomain = System.AppDomain.CreateDomain("NewApplicationDomain");

    // Load and execute an assembly:
    newDomain.ExecuteAssembly(@"c:\HelloWorld.exe");

    // Unload the application domain:
    System.AppDomain.Unload(newDomain);
}

Общие сведения о доменах приложений

Домены приложений обладают следующими свойствами:

  • Прежде чем сборка может быть выполнена, она должна быть загружена в домен приложения. Дополнительные сведения см. в разделе Сборки и глобальный кэш сборок (Руководство по программированию на C#).

  • Сбои в одном домене приложения не влияют на код, выполняющийся в другом домене приложения.

  • Можно прекратить выполнение и выгрузить код отдельных приложений, не останавливая процесс целиком. Выгрузить отдельные сборки или типы невозможно, домены приложений нужно выгружать целиком.

Разделы по теме

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 3.1 Запуск приложения

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Сборки и глобальный кэш сборок (Руководство по программированию на C#)