AppDomainManager 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.
Menyediakan setara terkelola dari host yang tidak dikelola.
public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
public class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomainManager = class
inherit MarshalByRefObject
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type AppDomainManager = class
inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
- Warisan
- Atribut
Contoh
Contoh berikut menunjukkan implementasi yang sangat sederhana dari AppDomainManager.
// To replace the default AppDomainManager, identify the
// replacement assembly and replacement type in the
// APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE
// environment variables. For example:
// set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
// set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
using System;
using System.Collections;
using System.Net;
using System.Reflection;
using System.Security;
using System.Security.Policy;
using System.Security.Principal;
using System.Threading;
using System.Runtime.InteropServices;
[assembly: System.Security.AllowPartiallyTrustedCallersAttribute()]
namespace MyNamespace
{
[GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")]
public class MyAppDomainManager : AppDomainManager
{
private HostSecurityManager mySecurityManager = null;
public MyAppDomainManager()
{
Console.WriteLine(" My AppDomain Manager ");
mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap(
"CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " +
"PublicKeyToken=5659fc598c2a503e",
"MyNamespace.MySecurityManager") as HostSecurityManager;
Console.WriteLine(" Custom Security Manager Created.");
}
public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
{
Console.Write("Initialize new domain called: ");
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);
InitializationFlags =
AppDomainManagerInitializationOptions.RegisterWithHost;
}
public override HostSecurityManager HostSecurityManager
{
get
{
return mySecurityManager;
}
}
}
}
' To replace the default AppDomainManager, identify the
' replacement assembly and replacement type in the
' APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE
' environment variables. For example:
' set APPDOMAIN_MANAGER_TYPE=library.TestAppDomainManager
' set APPDOMAIN_MANAGER_ASM=library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Imports System.Collections
Imports System.Net
Imports System.Reflection
Imports System.Security
Imports System.Security.Permissions
Imports System.Security.Policy
Imports System.Security.Principal
Imports System.Threading
Imports System.Runtime.InteropServices
<assembly: System.Security.AllowPartiallyTrustedCallersAttribute()>
<SecurityPermissionAttribute(SecurityAction.LinkDemand, _
Flags:=SecurityPermissionFlag.Infrastructure)> _
<SecurityPermissionAttribute(SecurityAction.InheritanceDemand, _
Flags:=SecurityPermissionFlag.Infrastructure)> _
<GuidAttribute("F4D15099-3407-4A7E-A607-DEA440CF3891")> _
Public Class MyAppDomainManager
Inherits AppDomainManager
Private mySecurityManager As HostSecurityManager = Nothing
Public Sub New()
Console.WriteLine(" My AppDomain Manager ")
mySecurityManager = AppDomain.CurrentDomain.CreateInstanceAndUnwrap( _
"CustomSecurityManager, Version=1.0.0.3, Culture=neutral, " & _
"PublicKeyToken=5659fc598c2a503e", "MyNamespace.MySecurityManager")
Console.WriteLine(" Custom Security Manager Created.")
End Sub
Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _
As AppDomainSetup)
Console.Write("Initialize new domain called: ")
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName)
InitializationFlags = _
AppDomainManagerInitializationOptions.RegisterWithHost
End Sub
Public Overrides ReadOnly Property HostSecurityManager() _
As HostSecurityManager
Get
Return mySecurityManager
End Get
End Property
End Class
Keterangan
Penting
Jangan gunakan AppDomainManager untuk mengonfigurasi domain aplikasi di ASP.NET. Dalam ASP.NET, konfigurasi harus ditangani oleh host.
Menerapkan AppDomainManager kelas memungkinkan aplikasi hosting untuk berpartisipasi dalam pembuatan domain aplikasi baru. Untuk mengganti default AppDomainManager, identifikasi perakitan dan jenis penggantian AppDomainManager dalam variabel lingkungan APPDOMAIN_MANAGER_ASM dan APPDOMAIN_MANAGER_TYPE, atau gunakan <elemen appDomainManagerAssembly> dan <appDomainManagerType> dalam file konfigurasi Anda. Perakitan harus sepenuhnya dipercaya dan terkandung dalam cache perakitan global atau direktori aplikasi awal. Jenis dan nama rakitan harus sepenuhnya memenuhi syarat dalam variabel lingkungan. Contohnya:
set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager
set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
Penting
Jika rakitan yang berisi subkelas AppDomainManager Anda bergantung pada rakitan yang ditandai dengan atribut kondisional AllowPartiallyTrustedCallersAttribute (APTCA), Anda harus menyertakan rakitan tersebut dalam daftar yang Anda berikan ke PartialTrustVisibleAssemblies properti yang AppDomainSetup Anda gunakan untuk membuat domain aplikasi. Jika tidak, rakitan yang ditandai dengan atribut APTCA kondisional akan dinonaktifkan.
AppDomainManager adalah yang dikelola setara dengan host yang tidak dikelola. Objek AppDomainManager berpartisipasi dalam pembuatan domain aplikasi baru dalam proses dan dapat menyesuaikan yang baru AppDomain sebelum kode terkelola lainnya berjalan. juga AppDomainManager dapat menyediakan manajer host yang berpartisipasi dalam aspek lain dari eksekusi runtime bahasa umum. Misalnya, AppDomainManager dapat mengidentifikasi HostSecurityManager objek yang berpartisipasi dalam keputusan keamanan domain aplikasi.
Catatan
Hanya rakitan yang diberikan FullTrust
, seperti rakitan di cache perakitan global atau diidentifikasi seperti fullTrustAssemblies
dalam AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metode yang dapat dimuat dalam AppDomainManager konstruktor dan InitializeNewDomain metode .
Catatan
Kelas ini berisi permintaan tautan dan permintaan warisan di tingkat kelas. SecurityException dilemparkan ketika pemanggil langsung atau kelas turunan tidak memiliki izin infrastruktur. Untuk detail tentang tuntutan keamanan, lihat Permintaan Tautan dan Permintaan Warisan.
Konstruktor
AppDomainManager() |
Menginisialisasi instans baru kelas AppDomainManager. |
Properti
ApplicationActivator |
Mendapatkan aktivator aplikasi yang menangani aktivasi add-in dan aplikasi berbasis manifes untuk domain. |
EntryAssembly |
Mendapatkan rakitan entri untuk aplikasi. |
HostExecutionContextManager |
Mendapatkan pengelola konteks eksekusi host yang mengelola alur konteks eksekusi. |
HostSecurityManager |
Mendapatkan manajer keamanan host yang berpartisipasi dalam keputusan keamanan untuk domain aplikasi. |
InitializationFlags |
Mendapatkan bendera inisialisasi untuk manajer domain aplikasi kustom. |
Metode
CheckSecuritySettings(SecurityState) |
Menunjukkan apakah operasi yang ditentukan diizinkan di domain aplikasi. |
CreateDomain(String, Evidence, AppDomainSetup) |
Mengembalikan domain aplikasi baru atau yang sudah ada. |
CreateDomainHelper(String, Evidence, AppDomainSetup) |
Menyediakan metode pembantu untuk membuat domain aplikasi. |
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) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
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 dari instans Type saat ini. (Diperoleh dari Object) |
InitializeLifetimeService() |
Kedaluwarsa.
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
InitializeNewDomain(AppDomainSetup) |
Menginisialisasi domain aplikasi baru. |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |