Compartilhar via


Como: Descarregar um domínio do aplicativo

Quando você tiver terminado o uso de um domínio de aplicativo, descarregue-o usando o método System.AppDomain.Unload.O método Unload normalmente desliga graciosamente o domínio do aplicativo especificado.Durante o processo de descarga, nenhum segmento novo pode acessar o domínio de aplicativo, e todas as estruturas de dados específicas do domínio de aplicativo são liberadas.

Assemblies carregados no domínio de aplicativo são removidos e não estão mais disponíveis.Se um assembly no domínio de aplicativo é de domínio neutro, os dados para o assembly permanecem na memória até que todo o processo seja desligado.Não há nenhum mecanismo para descarregar um assembly de domínio neutro que não encerrar o processo inteiro.Há situações em que a solicitação para descarregar um domínio do aplicativo não funciona e resulta em uma CannotUnloadAppDomainException.

O exemplo a seguir cria um novo domínio de aplicativo chamado MyDomain, imprime algumas informações para o console, e então descarrega o domínio de aplicativo.Observe que o código, em seguida, tenta imprimir o nome amigável do domínio de aplicativo descarregado ao console.Esta ação gera uma exceção que é manipulada pelas instruções try/catch no final do programa.

Exemplo

Imports System
Imports System.Reflection
Class AppDomain2
   Public Shared Sub Main()
      Console.WriteLine("Creating new AppDomain.")
      Dim domain As AppDomain = AppDomain.CreateDomain("MyDomain", Nothing)
      
      Console.WriteLine(("Host domain: " + AppDomain.CurrentDomain.FriendlyName))
      Console.WriteLine(("child domain: " + domain.FriendlyName))
      AppDomain.Unload(domain)
      Try
         Console.WriteLine()
         Console.WriteLine(("Host domain: " + AppDomain.CurrentDomain.FriendlyName))
         ' The following statement creates an exception because the domain no longer exists.
         Console.WriteLine(("child domain: " + domain.FriendlyName))
      Catch e As AppDomainUnloadedException
         Console.WriteLine("The appdomain MyDomain does not exist.")
      End Try
   End Sub 'Main
End Class 'AppDomain2
using System;
using System.Reflection;
class AppDomain2
{
public static void Main()
{
 Console.WriteLine("Creating new AppDomain.");
 AppDomain domain = AppDomain.CreateDomain("MyDomain", null);

            Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
            Console.WriteLine("child domain: " + domain.FriendlyName);
   AppDomain.Unload(domain);
   try
      {
      Console.WriteLine();
      Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
      // The following statement creates an exception because the domain no longer exists.
            Console.WriteLine("child domain: " + domain.FriendlyName);
      }
   catch (AppDomainUnloadedException e)
      {
      Console.WriteLine("The appdomain MyDomain does not exist.");
      }
   }
}

Consulte também

Tarefas

Como: Criar um domínio do aplicativo

Conceitos

Programação com domínios de aplicativo

Outros recursos

Usando domínios de aplicativos