AppDomain.CreateDomain Метод

Определение

Создает новый домен приложения.

Перегрузки

CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[])

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

CreateDomain(String, Evidence, String, String, Boolean)

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

CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])

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

CreateDomain(String, Evidence)

Создает новый домен приложения с заданным именем с помощью предоставленного свидетельства.

CreateDomain(String)
Является устаревшей.

Создает новый домен приложения с заданным именем.

CreateDomain(String, Evidence, AppDomainSetup)

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

CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[])

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

public:
 static AppDomain ^ CreateDomain(System::String ^ friendlyName, System::Security::Policy::Evidence ^ securityInfo, System::String ^ appBasePath, System::String ^ appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer ^ adInit, cli::array <System::String ^> ^ adInitArgs);
public static AppDomain CreateDomain (string friendlyName, System.Security.Policy.Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles, AppDomainInitializer adInit, string[] adInitArgs);
static member CreateDomain : string * System.Security.Policy.Evidence * string * string * bool * AppDomainInitializer * string[] -> AppDomain
Public Shared Function CreateDomain (friendlyName As String, securityInfo As Evidence, appBasePath As String, appRelativeSearchPath As String, shadowCopyFiles As Boolean, adInit As AppDomainInitializer, adInitArgs As String()) As AppDomain

Параметры

friendlyName
String

Понятное имя домена. Это понятное имя может отображаться в пользовательском интерфейсе для определения домена. Для получения дополнительной информации см. FriendlyName.

securityInfo
Evidence

Свидетельство, идентифицирующее код, который выполняется в домене приложения. Передайте значение null для использования свидетельства текущего домена приложения.

appBasePath
String

Базовый каталог, в котором распознаватель сборок производит поиск. Для получения дополнительной информации см. BaseDirectory.

appRelativeSearchPath
String

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

shadowCopyFiles
Boolean

Значение true для загрузки теневой копии сборки в этот домен приложения.

adInit
AppDomainInitializer

Делегат AppDomainInitializer, представляющий метод обратного вызова, вызываемый при инициализации нового объекта AppDomain.

adInitArgs
String[]

Массив строковых аргументов для передачи в обратный вызов, представленный объектом adInit, когда инициализируется новый объект AppDomain.

Возвращаемое значение

AppDomain

Вновь созданный домен приложения.

Исключения

friendlyName имеет значение null.

Комментарии

Метод, представленный методом adInit , выполняется в контексте только что созданного домена приложения.

Если securityInfo это не указано, используется свидетельство из текущего домена приложения.

Дополнительные сведения о теневом копировании см. в разделе ShadowCopyFiles и сборках теневого копирования.

Важно!

Не используйте эту перегрузку метода для создания изолированных доменов приложений. Начиная с платформа .NET Framework 4, предоставленные доказательства securityInfo больше не влияют на набор разрешений домена приложения. Используйте перегрузку CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) метода для создания изолированных доменов приложений.

Применяется к

CreateDomain(String, Evidence, String, String, Boolean)

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

public:
 static AppDomain ^ CreateDomain(System::String ^ friendlyName, System::Security::Policy::Evidence ^ securityInfo, System::String ^ appBasePath, System::String ^ appRelativeSearchPath, bool shadowCopyFiles);
public static AppDomain CreateDomain (string friendlyName, System.Security.Policy.Evidence securityInfo, string appBasePath, string appRelativeSearchPath, bool shadowCopyFiles);
static member CreateDomain : string * System.Security.Policy.Evidence * string * string * bool -> AppDomain
Public Shared Function CreateDomain (friendlyName As String, securityInfo As Evidence, appBasePath As String, appRelativeSearchPath As String, shadowCopyFiles As Boolean) As AppDomain

Параметры

friendlyName
String

Понятное имя домена. Это понятное имя может отображаться в пользовательском интерфейсе для определения домена. Для получения дополнительной информации см. FriendlyName.

securityInfo
Evidence

Свидетельство, идентифицирующее код, который выполняется в домене приложения. Передайте значение null для использования свидетельства текущего домена приложения.

appBasePath
String

Базовый каталог, в котором распознаватель сборок производит поиск. Для получения дополнительной информации см. BaseDirectory.

appRelativeSearchPath
String

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

shadowCopyFiles
Boolean

Если значение true, теневая копия сборки загружается в этот домен приложения.

Возвращаемое значение

AppDomain

Вновь созданный домен приложения.

Исключения

friendlyName имеет значение null.

Примеры

В следующем примере показано, как создать домен с помощью одной из CreateDomain перегрузок.

// Set up the AppDomainSetup
AppDomainSetup^ setup = gcnew AppDomainSetup;
setup->ApplicationBase = "(some directory)";
setup->ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence^ baseEvidence = AppDomain::CurrentDomain->Evidence;
Evidence^ evidence = gcnew Evidence( baseEvidence );
evidence->AddAssembly( "(some assembly)" );
evidence->AddHost( "(some host)" );

// Create the AppDomain
AppDomain^ newDomain = AppDomain::CreateDomain( "newDomain", evidence, setup );
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");

// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
open System
open System.Security.Policy

// Set up the AppDomainSetup
let setup = AppDomainSetup()
setup.ApplicationBase <- "(some directory)"
setup.ConfigurationFile <- "(some file)"

// Set up the Evidence
let baseEvidence = AppDomain.CurrentDomain.Evidence
let evidence = Evidence baseEvidence
evidence.AddAssembly "(some assembly)"
evidence.AddHost "(some host)" 

// Create the AppDomain
let newDomain = AppDomain.CreateDomain("newDomain", evidence, setup)
' Set up the AppDomainSetup
Dim setup As New AppDomainSetup()
setup.ApplicationBase = "(some directory)"
setup.ConfigurationFile = "(some file)"

' Set up the Evidence
Dim baseEvidence As Evidence = AppDomain.CurrentDomain.Evidence
Dim evidence As New Evidence(baseEvidence)
evidence.AddAssembly("(some assembly)")
evidence.AddHost("(some host)")

' Create the AppDomain
Dim newDomain As AppDomain = AppDomain.CreateDomain("newDomain", evidence, setup)

Комментарии

Если securityInfo это не указано, используется свидетельство из текущего домена приложения.

Дополнительные сведения о теневом копировании см. в разделе ShadowCopyFiles и сборках теневого копирования.

Важно!

Не используйте эту перегрузку метода для создания изолированных доменов приложений. Начиная с платформа .NET Framework 4, предоставленные доказательства securityInfo больше не влияют на набор разрешений домена приложения. Используйте перегрузку CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) метода для создания изолированных доменов приложений.

Применяется к

CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])

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

public:
 static AppDomain ^ CreateDomain(System::String ^ friendlyName, System::Security::Policy::Evidence ^ securityInfo, AppDomainSetup ^ info, System::Security::PermissionSet ^ grantSet, ... cli::array <System::Security::Policy::StrongName ^> ^ fullTrustAssemblies);
public static AppDomain CreateDomain (string friendlyName, System.Security.Policy.Evidence securityInfo, AppDomainSetup info, System.Security.PermissionSet grantSet, params System.Security.Policy.StrongName[] fullTrustAssemblies);
static member CreateDomain : string * System.Security.Policy.Evidence * AppDomainSetup * System.Security.PermissionSet * System.Security.Policy.StrongName[] -> AppDomain
Public Shared Function CreateDomain (friendlyName As String, securityInfo As Evidence, info As AppDomainSetup, grantSet As PermissionSet, ParamArray fullTrustAssemblies As StrongName()) As AppDomain

Параметры

friendlyName
String

Понятное имя домена. Это понятное имя может отображаться в пользовательском интерфейсе для определения домена. Дополнительные сведения см. в описании FriendlyName.

securityInfo
Evidence

Свидетельство, идентифицирующее код, который выполняется в домене приложения. Передайте значение null для использования свидетельства текущего домена приложения.

info
AppDomainSetup

Объект, в котором содержатся сведения об инициализации домена приложения.

grantSet
PermissionSet

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

fullTrustAssemblies
StrongName[]

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

Возвращаемое значение

AppDomain

Вновь созданный домен приложения.

Исключения

friendlyName имеет значение null.

Домен приложения равен null.

-или-

Свойство ApplicationBase не задано в объекте AppDomainSetup, который предоставляется для info.

Комментарии

Необходимо задать ApplicationBase свойство указанного AppDomainSetup объекта info. В противном случае создается исключение.

Если securityInfo это не указано, используется свидетельство из текущего домена приложения.

Сведения, предоставленные grantSet и fullTrustAssemblies используемые для создания ApplicationTrust объекта для нового домена приложения.

Применяется к

CreateDomain(String, Evidence)

Создает новый домен приложения с заданным именем с помощью предоставленного свидетельства.

public:
 static AppDomain ^ CreateDomain(System::String ^ friendlyName, System::Security::Policy::Evidence ^ securityInfo);
public static AppDomain CreateDomain (string friendlyName, System.Security.Policy.Evidence securityInfo);
static member CreateDomain : string * System.Security.Policy.Evidence -> AppDomain
Public Shared Function CreateDomain (friendlyName As String, securityInfo As Evidence) As AppDomain

Параметры

friendlyName
String

Понятное имя домена. Это понятное имя может отображаться в пользовательском интерфейсе для определения домена. Для получения дополнительной информации см. FriendlyName.

securityInfo
Evidence

Свидетельство, идентифицирующее код, который выполняется в домене приложения. Передайте значение null для использования свидетельства текущего домена приложения.

Возвращаемое значение

AppDomain

Вновь созданный домен приложения.

Исключения

friendlyName имеет значение null.

Примеры

В следующем примере показано, как создать домен с помощью одной из CreateDomain перегрузок.

// Set up the AppDomainSetup
AppDomainSetup^ setup = gcnew AppDomainSetup;
setup->ApplicationBase = "(some directory)";
setup->ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence^ baseEvidence = AppDomain::CurrentDomain->Evidence;
Evidence^ evidence = gcnew Evidence( baseEvidence );
evidence->AddAssembly( "(some assembly)" );
evidence->AddHost( "(some host)" );

// Create the AppDomain
AppDomain^ newDomain = AppDomain::CreateDomain( "newDomain", evidence, setup );
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");

// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
open System
open System.Security.Policy

// Set up the AppDomainSetup
let setup = AppDomainSetup()
setup.ApplicationBase <- "(some directory)"
setup.ConfigurationFile <- "(some file)"

// Set up the Evidence
let baseEvidence = AppDomain.CurrentDomain.Evidence
let evidence = Evidence baseEvidence
evidence.AddAssembly "(some assembly)"
evidence.AddHost "(some host)" 

// Create the AppDomain
let newDomain = AppDomain.CreateDomain("newDomain", evidence, setup)
' Set up the AppDomainSetup
Dim setup As New AppDomainSetup()
setup.ApplicationBase = "(some directory)"
setup.ConfigurationFile = "(some file)"

' Set up the Evidence
Dim baseEvidence As Evidence = AppDomain.CurrentDomain.Evidence
Dim evidence As New Evidence(baseEvidence)
evidence.AddAssembly("(some assembly)")
evidence.AddHost("(some host)")

' Create the AppDomain
Dim newDomain As AppDomain = AppDomain.CreateDomain("newDomain", evidence, setup)

Комментарии

Эта перегрузка метода использует AppDomainSetup сведения из домена приложения по умолчанию.

Если securityInfo это не указано, используется свидетельство из текущего домена приложения.

Важно!

Не используйте эту перегрузку метода для создания изолированных доменов приложений. Начиная с платформа .NET Framework 4, предоставленные доказательства securityInfo больше не влияют на набор предоставления домена приложения. Используйте перегрузку CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) метода для создания изолированных доменов приложений.

Применяется к

CreateDomain(String)

Внимание!

Creating and unloading AppDomains is not supported and throws an exception.

Создает новый домен приложения с заданным именем.

public:
 static AppDomain ^ CreateDomain(System::String ^ friendlyName);
public static AppDomain CreateDomain (string friendlyName);
[System.Obsolete("Creating and unloading AppDomains is not supported and throws an exception.", DiagnosticId="SYSLIB0024", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static AppDomain CreateDomain (string friendlyName);
static member CreateDomain : string -> AppDomain
[<System.Obsolete("Creating and unloading AppDomains is not supported and throws an exception.", DiagnosticId="SYSLIB0024", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member CreateDomain : string -> AppDomain
Public Shared Function CreateDomain (friendlyName As String) As AppDomain

Параметры

friendlyName
String

Понятное имя домена.

Возвращаемое значение

AppDomain

Вновь созданный домен приложения.

Атрибуты

Исключения

friendlyName имеет значение null.

Только .NET Core и .NET 5+: Во всех случаях.

Примеры

В следующем примере показано, как создать домен с помощью одной из CreateDomain перегрузок.

// Set up the AppDomainSetup
AppDomainSetup^ setup = gcnew AppDomainSetup;
setup->ApplicationBase = "(some directory)";
setup->ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence^ baseEvidence = AppDomain::CurrentDomain->Evidence;
Evidence^ evidence = gcnew Evidence( baseEvidence );
evidence->AddAssembly( "(some assembly)" );
evidence->AddHost( "(some host)" );

// Create the AppDomain
AppDomain^ newDomain = AppDomain::CreateDomain( "newDomain", evidence, setup );
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");

// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
open System
open System.Security.Policy

// Set up the AppDomainSetup
let setup = AppDomainSetup()
setup.ApplicationBase <- "(some directory)"
setup.ConfigurationFile <- "(some file)"

// Set up the Evidence
let baseEvidence = AppDomain.CurrentDomain.Evidence
let evidence = Evidence baseEvidence
evidence.AddAssembly "(some assembly)"
evidence.AddHost "(some host)" 

// Create the AppDomain
let newDomain = AppDomain.CreateDomain("newDomain", evidence, setup)
' Set up the AppDomainSetup
Dim setup As New AppDomainSetup()
setup.ApplicationBase = "(some directory)"
setup.ConfigurationFile = "(some file)"

' Set up the Evidence
Dim baseEvidence As Evidence = AppDomain.CurrentDomain.Evidence
Dim evidence As New Evidence(baseEvidence)
evidence.AddAssembly("(some assembly)")
evidence.AddHost("(some host)")

' Create the AppDomain
Dim newDomain As AppDomain = AppDomain.CreateDomain("newDomain", evidence, setup)

Комментарии

Параметр friendlyName предназначен для идентификации домена таким образом, который имеет смысл для людей. Эта строка должна быть подходит для отображения в пользовательских интерфейсах.

Эта перегрузка метода использует AppDomainSetup сведения из домена приложения по умолчанию.

См. также раздел

Применяется к

CreateDomain(String, Evidence, AppDomainSetup)

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

public:
 static AppDomain ^ CreateDomain(System::String ^ friendlyName, System::Security::Policy::Evidence ^ securityInfo, AppDomainSetup ^ info);
public static AppDomain CreateDomain (string friendlyName, System.Security.Policy.Evidence securityInfo, AppDomainSetup info);
static member CreateDomain : string * System.Security.Policy.Evidence * AppDomainSetup -> AppDomain
Public Shared Function CreateDomain (friendlyName As String, securityInfo As Evidence, info As AppDomainSetup) As AppDomain

Параметры

friendlyName
String

Понятное имя домена. Это понятное имя может отображаться в пользовательском интерфейсе для определения домена. Для получения дополнительной информации см. FriendlyName.

securityInfo
Evidence

Свидетельство, идентифицирующее код, который выполняется в домене приложения. Передайте значение null для использования свидетельства текущего домена приложения.

info
AppDomainSetup

Объект, в котором содержатся сведения об инициализации домена приложения.

Возвращаемое значение

AppDomain

Вновь созданный домен приложения.

Исключения

friendlyName имеет значение null.

Примеры

В следующем примере показано, как создать домен с помощью одной из CreateDomain перегрузок.

// Set up the AppDomainSetup
AppDomainSetup^ setup = gcnew AppDomainSetup;
setup->ApplicationBase = "(some directory)";
setup->ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence^ baseEvidence = AppDomain::CurrentDomain->Evidence;
Evidence^ evidence = gcnew Evidence( baseEvidence );
evidence->AddAssembly( "(some assembly)" );
evidence->AddHost( "(some host)" );

// Create the AppDomain
AppDomain^ newDomain = AppDomain::CreateDomain( "newDomain", evidence, setup );
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";

// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");

// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
open System
open System.Security.Policy

// Set up the AppDomainSetup
let setup = AppDomainSetup()
setup.ApplicationBase <- "(some directory)"
setup.ConfigurationFile <- "(some file)"

// Set up the Evidence
let baseEvidence = AppDomain.CurrentDomain.Evidence
let evidence = Evidence baseEvidence
evidence.AddAssembly "(some assembly)"
evidence.AddHost "(some host)" 

// Create the AppDomain
let newDomain = AppDomain.CreateDomain("newDomain", evidence, setup)
' Set up the AppDomainSetup
Dim setup As New AppDomainSetup()
setup.ApplicationBase = "(some directory)"
setup.ConfigurationFile = "(some file)"

' Set up the Evidence
Dim baseEvidence As Evidence = AppDomain.CurrentDomain.Evidence
Dim evidence As New Evidence(baseEvidence)
evidence.AddAssembly("(some assembly)")
evidence.AddHost("(some host)")

' Create the AppDomain
Dim newDomain As AppDomain = AppDomain.CreateDomain("newDomain", evidence, setup)

Комментарии

Если info этот метод не указан, эта перегрузка метода использует AppDomainSetup сведения из домена приложения по умолчанию.

Если securityInfo это не указано, используется свидетельство из текущего домена приложения.

Важно!

Не используйте эту перегрузку метода для создания изолированных доменов приложений. Начиная с платформа .NET Framework 4, предоставленные доказательства securityInfo больше не влияют на набор предоставления домена приложения. Используйте перегрузку CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) метода для создания изолированных доменов приложений.

Применяется к