Compartir a través de


AppDomainManager Clase

Definición

Proporciona un equivalente administrado de un host no administrado.

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
Herencia
AppDomainManager
Atributos

Ejemplos

En el ejemplo siguiente se muestra una implementación muy sencilla de 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

Comentarios

Importante

No use AppDomainManager para configurar un dominio de aplicación en ASP.NET. En ASP.NET, el host debe controlar la configuración.

La implementación de la AppDomainManager clase permite que una aplicación de hospedaje participe en la creación de nuevos dominios de aplicación. Para reemplazar el valor predeterminado AppDomainManager, identifique el ensamblado y el tipo de reemplazo AppDomainManager en las variables de entorno APPDOMAIN_MANAGER_ASM y APPDOMAIN_MANAGER_TYPE, o use los <elementos appDomainManagerAssembly> y <appDomainManagerType> en el archivo de configuración. El ensamblado debe ser de plena confianza y estar incluido en la caché global de ensamblados o en el directorio de la aplicación de inicio. Los nombres de tipo y ensamblado deben estar completos en las variables de entorno. Por ejemplo:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

set APPDOMAIN_MANAGER_ASM=customappDomainmanager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f1368f7b12a08d72

Importante

Si el ensamblado que contiene la subclase de depende de AppDomainManager los ensamblados marcados con el atributo condicional AllowPartiallyTrustedCallersAttribute (APTCA), debe incluir esos ensamblados en la lista que se pasa a la PartialTrustVisibleAssemblies propiedad del que usa para crear dominios de AppDomainSetup aplicación. De lo contrario, se deshabilitarán los ensamblados marcados con el atributo APTCA condicional.

AppDomainManager es el equivalente administrado del host no administrado. Un AppDomainManager objeto participa en la creación de nuevos dominios de aplicación en un proceso y puede personalizar el nuevo AppDomain antes de que se ejecute otro código administrado. AppDomainManager También puede proporcionar administradores de host que participen en otros aspectos de la ejecución de Common Language Runtime. Por ejemplo, un AppDomainManager objeto puede identificar un HostSecurityManager objeto que participa en las decisiones de seguridad del dominio de aplicación.

Nota

Solo se pueden cargar ensamblados concedidos FullTrust, como ensamblados en la caché global de ensamblados o identificados como fullTrustAssemblies en el AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) método en el AppDomainManager constructor y en el InitializeNewDomain método .

Nota

Esta clase contiene una demanda de vínculo y una demanda de herencia en el nivel de clase. SecurityException Se produce una excepción cuando el llamador inmediato o la clase derivada no tienen permiso de infraestructura. Para obtener más información sobre las demandas de seguridad, consulte Demandas de vínculo y demandas de herencia.

Constructores

AppDomainManager()

Inicializa una nueva instancia de la clase AppDomainManager.

Propiedades

ApplicationActivator

Obtiene el activador de aplicación que controla la activación de los complementos y las aplicaciones basadas en manifiesto del dominio.

EntryAssembly

Obtiene el ensamblado de entrada de una aplicación.

HostExecutionContextManager

Obtiene el administrador de contexto de ejecución de host que administra el flujo del contexto de ejecución.

HostSecurityManager

Obtiene al administrador de seguridad de host que participa en las decisiones de seguridad del dominio de aplicación.

InitializationFlags

Obtiene los marcadores de inicialización de los administradores de dominio de aplicación personalizados.

Métodos

CheckSecuritySettings(SecurityState)

Indica si la operación especificada se permite en el dominio de aplicación.

CreateDomain(String, Evidence, AppDomainSetup)

Devuelve un dominio de aplicación nuevo o existente.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Proporciona un método del asistente para crear un dominio de aplicación.

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Inicializa el nuevo dominio de aplicación.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a