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

-或-

未在提供給 infoApplicationBase 物件上設定 AppDomainSetup 屬性。

備註

您必須設定 ApplicationBase 您為 info 提供之 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[])使用 方法多載來建立沙箱化應用程式域。

適用於