AppDomain.CreateDomain 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建新的应用程序域。
重载
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 对象时调用的回调方法。
返回
新创建的应用程序域。
例外
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
。
注解
必须设置ApplicationBase为 info
提供的 对象的 属性AppDomainSetup。 否则会引发异常。
如果未 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)
- 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
域的友好名称。
返回
新创建的应用程序域。
- 属性
例外
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[])使用 方法重载创建沙盒应用程序域。