AppDomain Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili domain aplikasi, yang merupakan lingkungan terisolasi tempat aplikasi dijalankan. Kelas ini tidak dapat diwariskan.
public ref class AppDomain sealed : MarshalByRefObject
public ref class AppDomain : MarshalByRefObject
public ref class AppDomain sealed : MarshalByRefObject, _AppDomain, System::Security::IEvidenceFactory
public sealed class AppDomain : MarshalByRefObject
public class AppDomain : MarshalByRefObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
type AppDomain = class
inherit MarshalByRefObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type AppDomain = class
inherit MarshalByRefObject
interface _AppDomain
interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
inherit MarshalByRefObject
interface _AppDomain
interface IEvidenceFactory
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Public Class AppDomain
Inherits MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Implements _AppDomain, IEvidenceFactory
- Warisan
- Atribut
- Penerapan
Contoh
Contoh ini menunjukkan cara membuat baru AppDomain, membuat instans jenis di baru tersebut AppDomain, dan berkomunikasi dengan objek jenis tersebut. Selain itu, contoh ini menunjukkan cara membongkar AppDomain menyebabkan objek menjadi sampah yang dikumpulkan.
using namespace System;
using namespace System::Reflection;
using namespace System::Threading;
using namespace System::Security::Policy;
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
ref class MarshalByRefType : MarshalByRefObject
{
public:
// Call this method via a proxy.
void SomeMethod(String^ callingDomainName)
{
// Get this AppDomain's settings and display some of them.
AppDomainSetup^ ads = AppDomain::CurrentDomain->SetupInformation;
Console::WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
ads->ApplicationName,
ads->ApplicationBase,
ads->ConfigurationFile
);
// Display the name of the calling AppDomain and the name
// of the second domain.
// NOTE: The application's thread has transitioned between
// AppDomains.
Console::WriteLine("Calling from '{0}' to '{1}'.",
callingDomainName,
Thread::GetDomain()->FriendlyName
);
};
};
void main()
{
// Get and display the friendly name of the default AppDomain.
String^ callingDomainName = Thread::GetDomain()->FriendlyName;
Console::WriteLine(callingDomainName);
// Get and display the full name of the EXE assembly.
String^ exeAssembly = Assembly::GetEntryAssembly()->FullName;
Console::WriteLine(exeAssembly);
// Construct and initialize settings for a second AppDomain.
AppDomainSetup^ ads = gcnew AppDomainSetup();
ads->ApplicationBase = AppDomain::CurrentDomain->BaseDirectory;
ads->DisallowBindingRedirects = false;
ads->DisallowCodeDownload = true;
ads->ConfigurationFile =
AppDomain::CurrentDomain->SetupInformation->ConfigurationFile;
// Create the second AppDomain.
AppDomain^ ad2 = AppDomain::CreateDomain("AD #2",
AppDomain::CurrentDomain->Evidence, ads);
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
MarshalByRefType^ mbrt =
(MarshalByRefType^) ad2->CreateInstanceAndUnwrap(
exeAssembly,
MarshalByRefType::typeid->FullName
);
// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt->SomeMethod(callingDomainName);
// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain::Unload(ad2);
try
{
// Call the method again. Note that this time it fails
// because the second AppDomain was unloaded.
mbrt->SomeMethod(callingDomainName);
Console::WriteLine("Sucessful call.");
}
catch(AppDomainUnloadedException^)
{
Console::WriteLine("Failed call; this is expected.");
}
}
/* This code produces output similar to the following:
AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
*/
using System;
using System.Reflection;
using System.Threading;
class Module1
{
public static void Main()
{
// Get and display the friendly name of the default AppDomain.
string callingDomainName = Thread.GetDomain().FriendlyName;
Console.WriteLine(callingDomainName);
// Get and display the full name of the EXE assembly.
string exeAssembly = Assembly.GetEntryAssembly().FullName;
Console.WriteLine(exeAssembly);
// Construct and initialize settings for a second AppDomain.
AppDomainSetup ads = new AppDomainSetup();
ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
ads.DisallowBindingRedirects = false;
ads.DisallowCodeDownload = true;
ads.ConfigurationFile =
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
// Create the second AppDomain.
AppDomain ad2 = AppDomain.CreateDomain("AD #2", null, ads);
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
MarshalByRefType mbrt =
(MarshalByRefType) ad2.CreateInstanceAndUnwrap(
exeAssembly,
typeof(MarshalByRefType).FullName
);
// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt.SomeMethod(callingDomainName);
// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain.Unload(ad2);
try
{
// Call the method again. Note that this time it fails
// because the second AppDomain was unloaded.
mbrt.SomeMethod(callingDomainName);
Console.WriteLine("Sucessful call.");
}
catch(AppDomainUnloadedException)
{
Console.WriteLine("Failed call; this is expected.");
}
}
}
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
public class MarshalByRefType : MarshalByRefObject
{
// Call this method via a proxy.
public void SomeMethod(string callingDomainName)
{
// Get this AppDomain's settings and display some of them.
AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
ads.ApplicationName,
ads.ApplicationBase,
ads.ConfigurationFile
);
// Display the name of the calling AppDomain and the name
// of the second domain.
// NOTE: The application's thread has transitioned between
// AppDomains.
Console.WriteLine("Calling from '{0}' to '{1}'.",
callingDomainName,
Thread.GetDomain().FriendlyName
);
}
}
/* This code produces output similar to the following:
AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
*/
open System
open System.Reflection
open System.Threading
// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
type MarshalByRefType() =
inherit MarshalByRefObject()
// Call this method via a proxy.
member _.SomeMethod(callingDomainName) =
// Get this AppDomain's settings and display some of them.
let ads = AppDomain.CurrentDomain.SetupInformation
printfn $"AppName={ads.ApplicationName}, AppBase={ads.ApplicationBase}, ConfigFile={ads.ConfigurationFile}"
// Display the name of the calling AppDomain and the name
// of the second domain.
// NOTE: The application's thread has transitioned between
// AppDomains.
printfn $"Calling from '{callingDomainName}' to '{Thread.GetDomain().FriendlyName}'."
// Get and display the friendly name of the default AppDomain.
let callingDomainName = Thread.GetDomain().FriendlyName
printfn $"{callingDomainName}"
// Get and display the full name of the EXE assembly.
let exeAssembly = Assembly.GetEntryAssembly().FullName
printfn $"{exeAssembly}"
// Construct and initialize settings for a second AppDomain.
let ads = AppDomainSetup()
ads.ApplicationBase <- AppDomain.CurrentDomain.BaseDirectory
ads.DisallowBindingRedirects <- false
ads.DisallowCodeDownload <- true
ads.ConfigurationFile <-
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
// Create the second AppDomain.
let ad2 = AppDomain.CreateDomain("AD #2", null, ads)
// Create an instance of MarshalbyRefType in the second AppDomain.
// A proxy to the object is returned.
let mbrt =
ad2.CreateInstanceAndUnwrap(
exeAssembly,
typeof<MarshalByRefType>.FullName) :?> MarshalByRefType
// Call a method on the object via the proxy, passing the
// default AppDomain's friendly name in as a parameter.
mbrt.SomeMethod callingDomainName
// Unload the second AppDomain. This deletes its object and
// invalidates the proxy object.
AppDomain.Unload ad2
try
// Call the method again. Note that this time it fails
// because the second AppDomain was unloaded.
mbrt.SomeMethod callingDomainName
printfn "Sucessful call."
with :? AppDomainUnloadedException ->
printfn "Failed call this is expected."
(* This code produces output similar to the following:
AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call this is expected.
*)
Imports System.Reflection
Imports System.Threading
Module Module1
Sub Main()
' Get and display the friendly name of the default AppDomain.
Dim callingDomainName As String = Thread.GetDomain().FriendlyName
Console.WriteLine(callingDomainName)
' Get and display the full name of the EXE assembly.
Dim exeAssembly As String = [Assembly].GetEntryAssembly().FullName
Console.WriteLine(exeAssembly)
' Construct and initialize settings for a second AppDomain.
Dim ads As New AppDomainSetup()
ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
ads.DisallowBindingRedirects = False
ads.DisallowCodeDownload = True
ads.ConfigurationFile = _
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
' Create the second AppDomain.
Dim ad2 As AppDomain = AppDomain.CreateDomain("AD #2", Nothing, ads)
' Create an instance of MarshalbyRefType in the second AppDomain.
' A proxy to the object is returned.
Dim mbrt As MarshalByRefType = CType( _
ad2.CreateInstanceAndUnwrap(exeAssembly, _
GetType(MarshalByRefType).FullName), MarshalByRefType)
' Call a method on the object via the proxy, passing the default
' AppDomain's friendly name in as a parameter.
mbrt.SomeMethod(callingDomainName)
' Unload the second AppDomain. This deletes its object and
' invalidates the proxy object.
AppDomain.Unload(ad2)
Try
' Call the method again. Note that this time it fails because
' the second AppDomain was unloaded.
mbrt.SomeMethod(callingDomainName)
Console.WriteLine("Sucessful call.")
Catch e As AppDomainUnloadedException
Console.WriteLine("Failed call; this is expected.")
End Try
End Sub
End Module
' Because this class is derived from MarshalByRefObject, a proxy
' to a MarshalByRefType object can be returned across an AppDomain
' boundary.
Public Class MarshalByRefType
Inherits MarshalByRefObject
' Call this method via a proxy.
Public Sub SomeMethod(ByVal callingDomainName As String)
' Get this AppDomain's settings and display some of them.
Dim ads As AppDomainSetup = AppDomain.CurrentDomain.SetupInformation
Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", _
ads.ApplicationName, ads.ApplicationBase, ads.ConfigurationFile)
' Display the name of the calling AppDomain and the name
' of the second domain.
' NOTE: The application's thread has transitioned between
' AppDomains.
Console.WriteLine("Calling from '{0}' to '{1}'.", _
callingDomainName, Thread.GetDomain().FriendlyName)
End Sub
End Class
'This code produces output similar to the following:
'
' AppDomainX.exe
' AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
' AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
' Calling from 'AppDomainX.exe' to 'AD #2'.
' Failed call; this is expected.
Keterangan
Domain aplikasi, yang diwakili oleh AppDomain objek, membantu menyediakan isolasi, pembongkaran, dan batas keamanan untuk menjalankan kode terkelola.
- Gunakan domain aplikasi untuk mengisolasi tugas yang mungkin menurunkan proses. Jika status AppDomain yang menjalankan tugas menjadi tidak stabil, AppDomain dapat dibongkar tanpa memengaruhi proses. Ini penting ketika proses harus berjalan untuk jangka waktu yang lama tanpa memulai ulang. Anda juga dapat menggunakan domain aplikasi untuk mengisolasi tugas yang tidak boleh berbagi data.
- Jika rakitan dimuat ke domain aplikasi default, rakitan tidak dapat dibongkar dari memori saat proses berjalan. Namun, jika Anda membuka domain aplikasi kedua untuk memuat dan menjalankan perakitan, assembly akan dibongkar saat domain aplikasi tersebut dibongkar. Gunakan teknik ini untuk meminimalkan serangkaian proses yang berjalan lama yang kadang-kadang menggunakan DLL besar.
Nota
Pada .NET Core dan .NET 5+, AppDomain implementasi dibatasi oleh desain dan tidak menyediakan batas isolasi, pembongkaran, atau keamanan. Versi ini memiliki tepat satu AppDomain. Isolasi dan bongkar disediakan melalui AssemblyLoadContext. Batas keamanan harus disediakan oleh batas proses dan teknik jarak jauh yang sesuai.
Beberapa domain aplikasi dapat berjalan dalam satu proses; namun, tidak ada korelasi satu-ke-satu antara domain aplikasi dan utas. Beberapa utas dapat termasuk dalam satu domain aplikasi, dan sementara utas tertentu tidak terbatas pada satu domain aplikasi, pada waktu tertentu, utas dijalankan dalam satu domain aplikasi.
Domain aplikasi dibuat menggunakan CreateDomain metode . AppDomain instans digunakan untuk memuat dan menjalankan rakitan (Assembly). AppDomain Ketika tidak lagi digunakan, itu dapat dibongkar.
Kelas menerapkan AppDomain serangkaian peristiwa yang memungkinkan aplikasi merespons ketika assembly dimuat, ketika domain aplikasi akan dibongkar, atau ketika pengecualian yang tidak tertangani dilemparkan.
Untuk informasi selengkapnya tentang menggunakan domain aplikasi, lihat Domain Aplikasi.
Kelas ini mengimplementasikan MarshalByRefObjectantarmuka , _AppDomain, dan IEvidenceFactory .
Anda tidak boleh membuat pembungkus yang dapat diremobilitas untuk AppDomain objek. Melakukannya dapat menerbitkan referensi jarak jauh ke itu AppDomain, mengekspos metode seperti CreateInstance ke akses jarak jauh dan secara efektif menghancurkan keamanan akses kode untuk itu AppDomain. Klien berbahaya yang terhubung ke remoted AppDomain dapat memperoleh akses ke sumber daya apa pun yang AppDomain dapat diaksesnya sendiri. Jangan membuat pembungkus yang dapat diremotable untuk jenis apa pun yang meluas MarshalByRefObject dan yang mengimplementasikan metode yang dapat digunakan oleh klien berbahaya untuk melewati sistem keamanan.
Perhatian
Nilai default untuk AppDomainSetup.DisallowCodeDownload properti adalah false. Pengaturan ini tidak aman untuk layanan. Untuk mencegah layanan mengunduh kode tepercaya sebagian, atur properti ini ke true.
Properti
| Nama | Deskripsi |
|---|---|
| ActivationContext |
Mendapatkan konteks aktivasi untuk domain aplikasi saat ini. |
| ApplicationIdentity |
Mendapatkan identitas aplikasi di domain aplikasi. |
| ApplicationTrust |
Mendapatkan informasi yang menjelaskan izin yang diberikan ke aplikasi dan apakah aplikasi memiliki tingkat kepercayaan yang memungkinkannya berjalan. |
| BaseDirectory |
Mendapatkan direktori dasar yang digunakan pemecah rakitan untuk memeriksa rakitan. |
| CurrentDomain |
Mendapatkan domain aplikasi saat ini untuk .Thread |
| DomainManager |
Mendapatkan manajer domain yang disediakan oleh host ketika domain aplikasi diinisialisasi. |
| DynamicDirectory |
Mendapatkan direktori yang digunakan penyelesai rakitan untuk menyelidiki rakitan yang dibuat secara dinamis. |
| Evidence |
Mendapatkan yang Evidence terkait dengan domain aplikasi ini. |
| FriendlyName |
Mendapatkan nama yang mudah diingat dari domain aplikasi ini. |
| Id |
Mendapatkan bilangan bulat yang secara unik mengidentifikasi domain aplikasi dalam proses. |
| IsFullyTrusted |
Mendapatkan nilai yang menunjukkan apakah rakitan yang dimuat ke dalam domain aplikasi saat ini dijalankan dengan kepercayaan penuh. |
| IsHomogenous |
Mendapatkan nilai yang menunjukkan apakah domain aplikasi saat ini memiliki sekumpulan izin yang diberikan ke semua rakitan yang dimuat ke dalam domain aplikasi. |
| MonitoringIsEnabled |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah pemantauan CPU dan memori domain aplikasi diaktifkan untuk proses saat ini. Setelah pemantauan diaktifkan untuk proses, pemantauan tidak dapat dinonaktifkan. |
| MonitoringSurvivedMemorySize |
Mendapatkan jumlah byte yang bertahan dari koleksi terakhir dan yang diketahui dirujuk oleh domain aplikasi saat ini. |
| MonitoringSurvivedProcessMemorySize |
Mendapatkan total byte yang bertahan dari koleksi terakhir untuk semua domain aplikasi dalam proses. |
| MonitoringTotalAllocatedMemorySize |
Mendapatkan ukuran total, dalam byte, dari semua alokasi memori yang telah dibuat oleh domain aplikasi sejak dibuat, tanpa mengurangi memori yang telah dikumpulkan. |
| MonitoringTotalProcessorTime |
Mendapatkan total waktu prosesor yang telah digunakan oleh semua utas saat mengeksekusi di domain aplikasi saat ini, sejak proses dimulai. |
| PermissionSet |
Kedaluwarsa.
Mendapatkan sekumpulan izin domain aplikasi terkotakpasir. |
| RelativeSearchPath |
Mendapatkan jalur di bawah direktori dasar tempat pemecah masalah perakitan harus menyelidiki rakitan privat. |
| SetupInformation |
Mendapatkan informasi konfigurasi domain aplikasi untuk instans ini. |
| ShadowCopyFiles |
Mendapatkan indikasi apakah domain aplikasi dikonfigurasi ke file salinan bayangan. |
Metode
| Nama | Deskripsi |
|---|---|
| AppendPrivatePath(String) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menambahkan nama direktori yang ditentukan ke daftar jalur privat. |
| ApplyPolicy(String) |
Mengembalikan nama tampilan rakitan setelah kebijakan diterapkan. |
| ClearPrivatePath() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mereset jalur yang menentukan lokasi rakitan privat ke string kosong (""). |
| ClearShadowCopyPath() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mereset daftar direktori yang berisi rakitan yang disalin bayangan ke string kosong (""). |
| CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
Membuat instans baru dari jenis COM tertentu. Parameter menentukan nama file yang berisi rakitan yang berisi jenis dan nama jenis. |
| CreateComInstanceFrom(String, String) |
Membuat instans baru dari jenis COM tertentu. Parameter menentukan nama file yang berisi rakitan yang berisi jenis dan nama jenis. |
| CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) |
Membuat domain aplikasi baru menggunakan nama, bukti, informasi penyiapan domain aplikasi yang ditentukan, kumpulan izin default, dan array rakitan yang sepenuhnya tepercaya. |
| CreateDomain(String, Evidence, AppDomainSetup) |
Membuat domain aplikasi baru menggunakan nama, bukti, dan informasi penyiapan domain aplikasi yang ditentukan. |
| CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) |
Membuat domain aplikasi baru dengan nama yang diberikan, menggunakan bukti, jalur dasar aplikasi, jalur pencarian relatif, dan parameter yang menentukan apakah salinan bayangan rakitan akan dimuat ke domain aplikasi. Menentukan metode panggilan balik yang dipanggil saat domain aplikasi diinisialisasi, dan array argumen string untuk meneruskan metode panggilan balik. |
| CreateDomain(String, Evidence, String, String, Boolean) |
Membuat domain aplikasi baru dengan nama yang diberikan, menggunakan bukti, jalur dasar aplikasi, jalur pencarian relatif, dan parameter yang menentukan apakah salinan bayangan rakitan akan dimuat ke domain aplikasi. |
| CreateDomain(String, Evidence) |
Membuat domain aplikasi baru dengan nama yang diberikan menggunakan bukti yang disediakan. |
| CreateDomain(String) |
Kedaluwarsa.
Membuat domain aplikasi baru dengan nama yang ditentukan. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Kedaluwarsa.
Membuat instans baru dari jenis yang ditentukan dalam rakitan yang ditentukan. Parameter menentukan pengikat, bendera pengikatan, argumen konstruktor, informasi khusus budaya yang digunakan untuk menginterpretasikan argumen, atribut aktivasi, dan otorisasi untuk membuat jenis. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam rakitan yang ditentukan. Parameter menentukan pengikat, bendera pengikatan, argumen konstruktor, informasi khusus budaya yang digunakan untuk menginterpretasikan argumen, dan atribut aktivasi opsional. |
| CreateInstance(String, String, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam rakitan yang ditentukan. Parameter menentukan array atribut aktivasi. |
| CreateInstance(String, String) |
Membuat instans baru dari jenis yang ditentukan dalam rakitan yang ditentukan. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Kedaluwarsa.
Membuat instans baru dari jenis yang ditentukan. Parameter menentukan nama jenis, dan bagaimana ia ditemukan dan dibuat. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam rakitan yang ditentukan, menentukan apakah kasus nama jenis diabaikan; atribut pengikatan dan pengikat yang digunakan untuk memilih jenis yang akan dibuat; argumen konstruktor; budaya; dan atribut aktivasi. |
| CreateInstanceAndUnwrap(String, String, Object[]) |
Membuat instans baru dari jenis yang ditentukan. Parameter menentukan rakitan tempat jenis ditentukan, nama jenis, dan array atribut aktivasi. |
| CreateInstanceAndUnwrap(String, String) |
Membuat instans baru dari jenis yang ditentukan. Parameter menentukan rakitan tempat jenis ditentukan, dan nama jenisnya. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Kedaluwarsa.
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateInstanceFrom(String, String, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateInstanceFrom(String, String) |
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Kedaluwarsa.
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan, menentukan apakah kasus nama jenis diabaikan; atribut pengikatan dan pengikat yang digunakan untuk memilih jenis yang akan dibuat; argumen konstruktor; budaya; dan atribut aktivasi. |
| CreateInstanceFromAndUnwrap(String, String, Object[]) |
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateInstanceFromAndUnwrap(String, String) |
Membuat instans baru dari jenis yang ditentukan dalam file rakitan yang ditentukan. |
| CreateObjRef(Type) |
Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh. (Diperoleh dari MarshalByRefObject) |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan nama, mode akses, bukti, dan permintaan izin yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan nama, mode akses, dan bukti yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource) |
Menentukan rakitan dinamis dengan nama, mode akses, dan atribut kustom yang ditentukan, dan menggunakan sumber yang ditentukan untuk konteks keamanannya. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>) |
Menentukan rakitan dinamis dengan nama, mode akses, dan atribut kustom yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan nama, mode akses, dan permintaan izin yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>) |
Menentukan rakitan dinamis menggunakan opsi nama, mode akses, direktori penyimpanan, dan sinkronisasi yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) |
Kedaluwarsa.
Menentukan rakitan dinamis dengan nama, mode akses, direktori penyimpanan, bukti, permintaan izin, opsi sinkronisasi, dan atribut kustom yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan opsi nama, mode akses, direktori penyimpanan, bukti, permintaan izin, dan sinkronisasi yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan nama, mode akses, direktori penyimpanan, bukti, dan permintaan izin yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan nama, mode akses, direktori penyimpanan, dan bukti yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
Kedaluwarsa.
Menentukan rakitan dinamis menggunakan nama, mode akses, direktori penyimpanan, dan permintaan izin yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String) |
Menentukan rakitan dinamis menggunakan nama, mode akses, dan direktori penyimpanan yang ditentukan. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess) |
Menentukan rakitan dinamis dengan nama dan mode akses yang ditentukan. |
| DoCallBack(CrossAppDomainDelegate) |
Menjalankan kode di domain aplikasi lain yang diidentifikasi oleh delegasi yang ditentukan. |
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
Kedaluwarsa.
Menjalankan rakitan yang terkandung dalam file yang ditentukan, menggunakan bukti, argumen, nilai hash, dan algoritma hash yang ditentukan. |
| ExecuteAssembly(String, Evidence, String[]) |
Kedaluwarsa.
Menjalankan rakitan yang terkandung dalam file yang ditentukan, menggunakan bukti dan argumen yang ditentukan. |
| ExecuteAssembly(String, Evidence) |
Kedaluwarsa.
Menjalankan rakitan yang terkandung dalam file yang ditentukan, menggunakan bukti yang ditentukan. |
| ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm) |
Kedaluwarsa.
Menjalankan rakitan yang terkandung dalam file yang ditentukan, menggunakan argumen, nilai hash, dan algoritma hash yang ditentukan. |
| ExecuteAssembly(String, String[]) |
Menjalankan rakitan yang terkandung dalam file yang ditentukan, menggunakan argumen yang ditentukan. |
| ExecuteAssembly(String) |
Menjalankan rakitan yang terkandung dalam file yang ditentukan. |
| ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
Kedaluwarsa.
Menjalankan rakitan yang AssemblyNamediberikan , menggunakan bukti dan argumen yang ditentukan. |
| ExecuteAssemblyByName(AssemblyName, String[]) |
Menjalankan rakitan yang AssemblyNamediberikan , menggunakan argumen yang ditentukan. |
| ExecuteAssemblyByName(String, Evidence, String[]) |
Kedaluwarsa.
Menjalankan rakitan yang diberikan nama tampilannya, menggunakan bukti dan argumen yang ditentukan. |
| ExecuteAssemblyByName(String, Evidence) |
Kedaluwarsa.
Menjalankan assembly yang diberikan nama tampilannya, menggunakan bukti yang ditentukan. |
| ExecuteAssemblyByName(String, String[]) |
Menjalankan rakitan yang diberikan nama tampilannya, menggunakan argumen yang ditentukan. |
| ExecuteAssemblyByName(String) |
Menjalankan rakitan yang diberikan nama tampilannya. |
| GetAssemblies() |
Mendapatkan rakitan yang telah dimuat ke dalam konteks eksekusi domain aplikasi ini. |
| GetCurrentThreadId() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mendapatkan pengidentifikasi utas saat ini. |
| GetData(String) |
Mendapatkan nilai yang disimpan di domain aplikasi saat ini untuk nama yang ditentukan. |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetLifetimeService() |
Kedaluwarsa.
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| GetType() |
Mendapatkan jenis instans saat ini. |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| InitializeLifetimeService() |
AppDomain Memberikan masa pakai tak terbatas dengan mencegah sewa dibuat. |
| InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| IsCompatibilitySwitchSet(String) |
Mendapatkan nilai Boolean nullable yang menunjukkan apakah ada sakelar kompatibilitas yang diatur, dan jika demikian, apakah sakelar kompatibilitas yang ditentukan diatur. |
| IsDefaultAppDomain() |
Mengembalikan nilai yang menunjukkan apakah domain aplikasi adalah domain aplikasi default untuk proses tersebut. |
| IsFinalizingForUnload() |
Menunjukkan apakah domain aplikasi ini sedang dibongkar, dan objek yang dikandungnya sedang diselesaikan oleh runtime bahasa umum. |
| Load(AssemblyName, Evidence) |
Kedaluwarsa.
Memuat yang Assembly diberikan AssemblyName. |
| Load(AssemblyName) |
Memuat yang Assembly diberikan AssemblyName. |
| Load(Byte[], Byte[], Evidence) |
Kedaluwarsa.
Assembly Memuat dengan gambar berbasis format file objek umum (COFF) yang berisi yang dipancarkan Assembly. Byte mentah yang mewakili simbol untuk Assembly juga dimuat. |
| Load(Byte[], Byte[]) |
Assembly Memuat dengan gambar berbasis format file objek umum (COFF) yang berisi yang dipancarkan Assembly. Byte mentah yang mewakili simbol untuk Assembly juga dimuat. |
| Load(Byte[]) |
Assembly Memuat dengan gambar berbasis format file objek umum (COFF) yang berisi yang dipancarkan Assembly. |
| Load(String, Evidence) |
Kedaluwarsa.
Memuat nama tampilan yang Assembly diberikan. |
| Load(String) |
Memuat nama tampilan yang Assembly diberikan. |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
| ReflectionOnlyGetAssemblies() |
Mengembalikan rakitan yang telah dimuat ke dalam konteks hanya refleksi domain aplikasi. |
| SetAppDomainPolicy(PolicyLevel) |
Kedaluwarsa.
Menetapkan tingkat kebijakan keamanan untuk domain aplikasi ini. |
| SetCachePath(String) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menetapkan jalur direktori yang ditentukan sebagai lokasi tempat rakitan disalin bayangan. |
| SetData(String, Object, IPermission) |
Menetapkan nilai yang ditentukan ke properti domain aplikasi yang ditentukan, dengan izin yang ditentukan untuk permintaan pemanggil saat properti diambil. |
| SetData(String, Object) |
Menetapkan nilai yang ditentukan ke properti domain aplikasi yang ditentukan. |
| SetDynamicBase(String) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menetapkan jalur direktori yang ditentukan sebagai direktori dasar untuk subdirektori tempat file yang dihasilkan secara dinamis disimpan dan diakses. |
| SetPrincipalPolicy(PrincipalPolicy) |
Menentukan bagaimana objek utama dan identitas harus dilampirkan ke utas jika utas mencoba mengikat ke prinsipal saat menjalankan di domain aplikasi ini. |
| SetShadowCopyFiles() |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Mengaktifkan penyalinan bayangan. |
| SetShadowCopyPath(String) |
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.
Menetapkan jalur direktori yang ditentukan sebagai lokasi rakitan yang akan disalin bayangan. |
| SetThreadPrincipal(IPrincipal) |
Mengatur objek utama default yang akan dilampirkan ke utas jika mereka mencoba mengikat ke prinsipal saat menjalankan di domain aplikasi ini. |
| ToString() |
Mendapatkan representasi string yang menyertakan nama yang mudah diingat dari domain aplikasi dan kebijakan konteks apa pun. |
| Unload(AppDomain) |
Kedaluwarsa.
Membongkar domain aplikasi yang ditentukan. |
Acara
| Nama | Deskripsi |
|---|---|
| AssemblyLoad |
Terjadi ketika rakitan dimuat. |
| AssemblyResolve |
Terjadi ketika resolusi rakitan gagal. |
| DomainUnload |
Terjadi ketika akan AppDomain dibongkar. |
| FirstChanceException |
Terjadi ketika pengecualian dilemparkan dalam kode terkelola, sebelum runtime mencari tumpukan panggilan untuk handler pengecualian di domain aplikasi. |
| ProcessExit |
Terjadi ketika proses induk domain aplikasi default keluar. |
| ReflectionOnlyAssemblyResolve |
Terjadi ketika resolusi rakitan gagal dalam konteks khusus refleksi. |
| ResourceResolve |
Terjadi ketika resolusi sumber daya gagal karena sumber daya bukan sumber daya tertaut atau disematkan yang valid di rakitan. |
| TypeResolve |
Terjadi ketika resolusi jenis gagal. |
| UnhandledException |
Terjadi ketika pengecualian tidak tertangkap. |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| _AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. |
| _AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang kemudian dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. |
| _AppDomain.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). |
| _AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. |