Поделиться через


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 объекта.

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

Только что созданный домен приложения.

Исключения

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теневая копия сборки загружается в этот домен приложения.

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

Только что созданный домен приложения.

Исключения

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[]

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

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

Только что созданный домен приложения.

Исключения

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 сведения об использовании текущего домена приложения.

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

Только что созданный домен приложения.

Исключения

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)

Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs
Исходный код:
AppDomain.cs

Внимание

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

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

public:
 static AppDomain ^ CreateDomain(System::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);
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}")>]
static member CreateDomain : string -> AppDomain
static member CreateDomain : string -> AppDomain
Public Shared Function CreateDomain (friendlyName As String) As AppDomain

Параметры

friendlyName
String

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

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

Только что созданный домен приложения.

Атрибуты

Исключения

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

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

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

Только что созданный домен приложения.

Исключения

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[]) метода для создания изолированных доменов приложений.

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