AppDomainManager AppDomainManager AppDomainManager AppDomainManager Class

Definizione

Fornisce un equivalente gestito di un host non gestito.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
Ereditarietà
AppDomainManagerAppDomainManagerAppDomainManagerAppDomainManager
Attributi

Esempi

Nell'esempio seguente viene illustrata un'implementazione molto semplice di AppDomainManager.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
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 

Commenti

Importante

Non usare AppDomainManager per configurare un dominio dell'applicazione in ASP.NET.Do not use AppDomainManager to configure an application domain in ASP.NET. In ASP.NET, configurazione deve essere gestita dall'host.In ASP.NET, configuration must be handled by the host.

Implementazione di AppDomainManager classe consente a un'applicazione host di partecipare alla creazione di nuovi domini applicazione.Implementing the AppDomainManager class enables a hosting application to participate in the creation of new application domains. Per sostituire il valore predefinito AppDomainManager, identificare l'assembly e tipo di sostituzione AppDomainManager APPDOMAIN_MANAGER_ASM e APPDOMAIN_MANAGER_TYPE variabili di ambiente oppure utilizzare il <appDomainManagerAssembly > e <appDomainManagerType > elementi nel file di configurazione.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. L'assembly deve essere completamente attendibile e trovarsi nella global assembly cache o nella directory dell'applicazione di avvio.The assembly must be fully trusted and be contained in the global assembly cache or the directory of the starting application. Il tipo e assembly devono essere completamente qualificati nelle variabili di ambiente.The type and assembly names must be fully qualified in the environment variables. Ad esempio:For example:

set APPDOMAIN_MANAGER_TYPE=MyNamespace.TestAppDomainManager

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

Importante

Se l'assembly che contiene una sottoclasse di AppDomainManager dipende dagli assembly contrassegnati con il parametro condizionale AllowPartiallyTrustedCallersAttribute attributo (APTCA), è necessario includere gli assembly nell'elenco passato al PartialTrustVisibleAssemblies proprietà il AppDomainSetupè possibile creare domini dell'applicazione.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. In caso contrario, gli assembly contrassegnati con l'attributo APTCA conditional verranno disabilitati.Otherwise, the assemblies that are marked with the conditional APTCA attribute will be disabled.

Il AppDomainManager è l'equivalente gestito dell'host non gestito.The AppDomainManager is the managed equivalent of the unmanaged host. Un' AppDomainManager oggetto partecipa alla creazione di nuovi domini applicazione in un processo e può personalizzare il nuovo AppDomain prima dell'esecuzione di altro codice gestito.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. Il AppDomainManager può inoltre fornire gestori host che fanno parte di altri aspetti dell'esecuzione di common language runtime.The AppDomainManager can also supply host managers that participate in other aspects of common language runtime execution. Ad esempio, un' AppDomainManager può identificare un HostSecurityManager oggetto che partecipa al processo decisionale del dominio dell'applicazione.For example, an AppDomainManager can identify a HostSecurityManager object that participates in the security decisions of the application domain.

Nota

Solo gli assembly concesso FullTrust, ad esempio gli assembly nella global assembly cache o identificato come fullTrustAssemblies nel AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) metodo può essere caricato nel AppDomainManager costruttore e il InitializeNewDomain (metodo).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

Questa classe contiene una richiesta di collegamento e una richiesta di ereditarietà a livello di classe.This class contains a link demand and an inheritance demand at the class level. Oggetto SecurityException viene generata quando il chiamante immediato o la classe derivata non dispone dell'autorizzazione di infrastruttura.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Per informazioni dettagliate sui requisiti di sicurezza, vedere linking e richieste di ereditarietà.For details about security demands, see Link Demands and Inheritance Demands.

Costruttori

AppDomainManager() AppDomainManager() AppDomainManager() AppDomainManager()

Inizializza una nuova istanza della classe AppDomainManager.Initializes a new instance of the AppDomainManager class.

Proprietà

ApplicationActivator ApplicationActivator ApplicationActivator ApplicationActivator

Ottiene l'attivatore di applicazione che gestisce l'attivazione di componenti aggiuntivi e applicazioni basate su manifesto per il dominio.Gets the application activator that handles the activation of add-ins and manifest-based applications for the domain.

EntryAssembly EntryAssembly EntryAssembly EntryAssembly

Ottiene l'assembly di ingresso per un'applicazione.Gets the entry assembly for an application.

HostExecutionContextManager HostExecutionContextManager HostExecutionContextManager HostExecutionContextManager

Ottiene il gestore di contesto di esecuzione host per il flusso del contesto di esecuzione.Gets the host execution context manager that manages the flow of the execution context.

HostSecurityManager HostSecurityManager HostSecurityManager HostSecurityManager

Ottiene il gestore della sicurezza host che partecipa al processo decisionale sulla sicurezza per il dominio applicazione.Gets the host security manager that participates in security decisions for the application domain.

InitializationFlags InitializationFlags InitializationFlags InitializationFlags

Ottiene i flag di inizializzazione per i gestori di dominio applicazione personalizzati.Gets the initialization flags for custom application domain managers.

Metodi

CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState) CheckSecuritySettings(SecurityState)

Indica se l'operazione specificata è consentita nel dominio applicazione.Indicates whether the specified operation is allowed in the application domain.

CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup) CreateDomain(String, Evidence, AppDomainSetup)

Restituisce un dominio applicazione nuovo o esistente.Returns a new or existing application domain.

CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup) CreateDomainHelper(String, Evidence, AppDomainSetup)

Fornisce un metodo di supporto per creare un dominio applicazione.Provides a helper method to create an application domain.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup) InitializeNewDomain(AppDomainSetup)

Inizializza il nuovo dominio applicazione.Initializes the new application domain.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Sicurezza

SecurityCriticalAttribute
richiede l'attendibilità totale per il chiamante immediato.Requires full trust for the immediate caller. Questo membro non può essere utilizzato da codice parzialmente attendibile o trasparente.This member cannot be used by partially trusted or transparent code.

InheritanceDemand
per classi derivate per inserire il codice eseguibile nell'infrastruttura che ospita common language runtime.for derived classes to plug executable code into the common language runtime hosting infrastructure. Enumerazione associata: Infrastructure.Associated enumeration: Infrastructure.

Si applica a