Programmazione con i domini applicazione
Aggiornamento: novembre 2007
I domini applicazione vengono solitamente creati e modificati direttamente a livello di codice dagli host di runtime. Tuttavia, anche un programma applicativo può richiedere talvolta l'utilizzo di domini applicazione. Un programma applicativo, ad esempio, potrebbe caricare il componente di un'applicazione in un dominio per poter scaricare il dominio e il componente senza dover interrompere l'intera applicazione.
La classe AppDomain rappresenta l'interfaccia che consente di accedere ai domini applicazione a livello di codice e include metodi per creare e scaricare domini, per creare istanze di tipi nei domini e per effettuare la registrazione per varie notifiche, come ad esempio quelle per scaricare i domini applicazione. Nella tabella riportata di seguito vengono elencati i metodi di AppDomain comunemente utilizzati.
Metodo AppDomain |
Descrizione |
---|---|
Crea un nuovo dominio applicazione. Si consiglia di utilizzare un overload di questo metodo che specifica un oggetto AppDomainSetup. Si tratta del sistema preferito per impostare le proprietà di un nuovo dominio, quali la base o la directory principale dell'applicazione, il percorso del file di configurazione del dominio e il percorso di ricerca utilizzato da Common Language Runtime per caricare gli assembly nel dominio. |
|
Esegue un assembly nel dominio applicazione. Si tratta di un metodo di istanza, pertanto è possibile utilizzarlo per eseguire codice in un altro dominio applicazione per il quale si dispone di un riferimento. |
|
Crea un'istanza del tipo specificato nel dominio applicazione e restituisce un proxy. Utilizzando questo metodo è possibile evitare di caricare l'assembly che contiene il tipo creato nell'assembly chiamante. |
|
Esegue un arresto ponderato del dominio. Il dominio applicazione non viene scaricato fino a quando tutti i thread del dominio non sono stati interrotti o non sono più presenti nel dominio. |
Nota: |
---|
Poiché Common Language Runtime non supporta la serializzazione di metodi globali, non è possibile utilizzare i delegati per eseguire metodi globali in altri domini applicazione. |
Anche le interfacce non gestite descritte nelle specifiche delle interfacce di hosting di Common Language Runtime forniscono l'accesso ai domini applicazione. Gli host di runtime possono utilizzare tali interfacce dal codice non gestito per creare i domini applicazione e accedervi nell'ambito di un processo.