AppDomainManager Class
Provides a managed equivalent of an unmanaged host.
Assembly: mscorlib (in mscorlib.dll)
'Declaration <ComVisibleAttribute(True)> _ <SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags := SecurityPermissionFlag.Infrastructure)> _ <SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags := SecurityPermissionFlag.Infrastructure)> _ Public Class AppDomainManager _ Inherits MarshalByRefObject 'Usage Dim instance As AppDomainManager
| Exception | Condition |
|---|---|
| SecurityException | The caller does not have the correct permissions. See the Requirements section. |
Important Note: |
|---|
Do not use AppDomainManager to configure an application domain in ASP.NET. In ASP.NET, configuration must be handled by the host. |
Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. To replace the default AppDomainManager, identify the assembly and type of the replacement AppDomainManager in the APPDOMAIN_MANAGER_ASM and APPDOMAIN_MANAGER_TYPE environment variables. The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. The type and assembly names must be fully qualified in the environment variables. For example:
set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager
set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72
The AppDomainManager is the managed equivalent of the unmanaged host. An AppDomainManager object participates in the creation of new application domains in a process and can customize the new AppDomain before other managed code runs. The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of theapplication domain.
Note: |
|---|
Only assemblies granted FullTrust, such as assemblies in the global assembly cache or identified as fullTrustAssemblies in the AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName()) method can be loaded in the AppDomainManager constructor and the InitializeNewDomain method. |
Note: |
|---|
This class contains a link demand and an inheritance demand at the class level. A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. For details about security demands, see Link Demands and Inheritance Demands. |
The following code example shows a very simple implementation of 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 Imports System 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 'New Public Overrides Sub InitializeNewDomain(ByVal appDomainInfo _ As AppDomainSetup) Console.Write("Initialize new domain called: ") Console.WriteLine(AppDomain.CurrentDomain.FriendlyName) InitializationFlags = _ AppDomainManagerInitializationOptions.RegisterWithHost End Sub 'InitializeNewDomain Public Overrides ReadOnly Property HostSecurityManager() _ As HostSecurityManager Get Return mySecurityManager End Get End Property End Class 'MyAppDomainManager
- SecurityPermission
for operating with infrastructure code. Associated enumeration: SecurityPermissionFlag.Infrastructure. Security action: LinkDemand
- SecurityPermission
for operating with infrastructure code. Associated enumeration: SecurityPermissionFlag.Infrastructure. Security action: InheritanceDemand
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Xbox 360
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Important Note: