AppDomainManager Clase

Definición

Proporciona un equivalente administrado de un host no administrado.Provides a managed equivalent of an unmanaged host.

public ref class AppDomainManager : MarshalByRefObject
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class AppDomainManager : MarshalByRefObject
type AppDomainManager = class
    inherit MarshalByRefObject
Public Class AppDomainManager
Inherits MarshalByRefObject
Herencia
AppDomainManager
Atributos

Ejemplos

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

using System;
using System.Collections;
using System.Net;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
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")]
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
        Flags = SecurityPermissionFlag.Infrastructure)]
    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.Do not use AppDomainManager to configure an application domain in ASP.NET. En ASP.NET, el host debe controlar la configuración.In ASP.NET, configuration must be handled by the host.

La implementación AppDomainManager de la clase permite a una aplicación de hospedaje participar en la creación de nuevos dominios de aplicación.Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. Para reemplazar el valor AppDomainManagerpredeterminado, identifique el ensamblado y el tipo AppDomainManager de reemplazo en las variables de entorno APPDOMAIN_MANAGER_ASM y APPDOMAIN_MANAGER_TYPE, o use el <> appDomainManagerAssembly y appDomainManagerType > elementos del archivo de configuración. <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, or use the <appDomainManagerAssembly> and <appDomainManagerType> elements in your configuration file. 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.The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. Los nombres de tipo y de ensamblado deben estar completos en las variables de entorno.The type and assembly names must be fully qualified in the environment variables. Por ejemplo:For example:

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 AppDomainManager de depende de los ensamblados marcados con AllowPartiallyTrustedCallersAttribute el atributo condicional (APTCA), debe incluir esos ensamblados en la lista que se pasa PartialTrustVisibleAssemblies a la propiedad del AppDomainSetupse usa para crear dominios de aplicación.If the assembly that contains your subclass of AppDomainManager depends on assemblies that are marked with the conditional AllowPartiallyTrustedCallersAttribute (APTCA) attribute, you must include those assemblies in the list that you pass to the PartialTrustVisibleAssemblies property of the AppDomainSetup you use to create application domains. De lo contrario, los ensamblados marcados con el atributo APTCA condicional estarán deshabilitados.Otherwise, the assemblies that are marked with the conditional APTCA attribute will be disabled.

AppDomainManager Es el equivalente administrado del host no administrado.The AppDomainManager is the managed equivalent of the unmanaged host. Un AppDomainManager objeto participa en la creación de nuevos dominios de aplicación en un proceso y puede personalizar el AppDomain nuevo antes de que se ejecute otro código administrado.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. También AppDomainManager puede proporcionar administradores de host que participen en otros aspectos de la ejecución de Common Language Runtime.The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. Por ejemplo, AppDomainManager puede identificar un HostSecurityManager objeto que participa en las decisiones de seguridad del dominio de aplicación.For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of the application domain.

Nota

Solo FullTrustlos ensamblados concedidos, como los ensamblados en la caché global de ensamblados o identificados como AppDomainManager fullTrustAssemblies en el AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) método InitializeNewDomain , se pueden cargar en el constructor y el método.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.

Nota

Esta clase contiene una petición de vínculo y una petición de herencia en el nivel de clase.This class contains a link demand and an inheritance demand at the class level. Se SecurityException produce una excepción cuando el llamador inmediato o la clase derivada no tienen permiso de infraestructura.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Para obtener más información sobre las demandas de seguridad, consulte peticiones de vínculo y peticiones de herencia.For details about security demands, see Link Demands and Inheritance Demands.

Constructores

AppDomainManager()

Inicializa una nueva instancia de la clase AppDomainManager.Initializes a new instance of the AppDomainManager class.

Propiedades

ApplicationActivator

Obtiene el activador de aplicación que controla la activación de los complementos y las aplicaciones basadas en manifiesto del dominio.Gets the application activator that handles the activation of add-ins and manifest-based applications for the domain.

EntryAssembly

Obtiene el ensamblado de entrada de una aplicación.Gets the entry assembly for an application.

HostExecutionContextManager

Obtiene el administrador de contexto de ejecución de host que administra el flujo del contexto de ejecución.Gets the host execution context manager that manages the flow of the execution context.

HostSecurityManager

Obtiene al administrador de seguridad de host que participa en las decisiones de seguridad del dominio de aplicación.Gets the host security manager that participates in security decisions for the application domain.

InitializationFlags

Obtiene los marcadores de inicialización de los administradores de dominio de aplicación personalizados.Gets the initialization flags for custom application domain managers.

Métodos

CheckSecuritySettings(SecurityState)

Indica si la operación especificada se permite en el dominio de aplicación.Indicates whether the specified operation is allowed in the application domain.

CreateDomain(String, Evidence, AppDomainSetup)

Devuelve un dominio de aplicación nuevo o existente.Returns a new or existing application domain.

CreateDomainHelper(String, Evidence, AppDomainSetup)

Proporciona un método del asistente para crear un dominio de aplicación.Provides a helper method to create an application domain.

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Heredado de MarshalByRefObject)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Heredado de MarshalByRefObject)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
InitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Heredado de MarshalByRefObject)
InitializeNewDomain(AppDomainSetup)

Inicializa el nuevo dominio de aplicación.Initializes the new application domain.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.Creates a shallow copy of the current MarshalByRefObject object.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Seguridad

SecurityCriticalAttribute
Requiere plena confianza para el llamador inmediato.Requires full trust for the immediate caller. Este miembro no puede ser utilizado por código transparente o de confianza parcial.This member cannot be used by partially trusted or transparent code.

InheritanceDemand
para que las clases derivadas integren código ejecutable en la infraestructura de hospedaje de Common Language Runtime.for derived classes to plug executable code into the common language runtime hosting infrastructure. Enumeración asociada: Infrastructure.Associated enumeration: Infrastructure.

Se aplica a