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

字符串实参数组,在初始化新的 AppDomain 对象时传递给由 adInit 表示的回调。

返回

新创建的应用程序域。

例外

friendlyNamenull

注解

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,则向此应用程序域中加载程序集的卷影副本。

返回

新创建的应用程序域。

例外

friendlyNamenull

示例

以下示例通常演示如何使用其中 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[]

一组强名称,表示在新应用程序域中被认为完全受信任的程序集。

返回

新创建的应用程序域。

例外

friendlyNamenull

应用程序域为 null

- 或 -

ApplicationBase 属性在为 info 提供的 AppDomainSetup 对象上没有设置。

注解

必须设置ApplicationBaseinfo提供的 对象的 属性AppDomainSetup。 否则会引发异常。

如果未 securityInfo 提供 ,则使用来自当前应用程序域的证据。

grantSetfullTrustAssemblies 提供的信息用于为新应用程序域创建 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 以使用当前应用程序域的证据。

返回

新创建的应用程序域。

例外

friendlyNamenull

示例

以下示例通常演示如何使用其中 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)

Source:
AppDomain.cs
Source:
AppDomain.cs
Source:
AppDomain.cs

注意

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

域的友好名称。

返回

新创建的应用程序域。

属性

例外

friendlyNamenull

仅限 .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

包含应用程序域初始化信息的对象。

返回

新创建的应用程序域。

例外

friendlyNamenull

示例

以下示例通常演示如何使用其中 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[])使用 方法重载创建沙盒应用程序域。

适用于