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)
Внимание!
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
Понятное имя домена.
Возвращаемое значение
Вновь созданный домен приложения.
- Атрибуты
Исключения
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[]) метода для создания изолированных доменов приложений.