Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe AppDomain

 

Representa um domínio de aplicativo, que é um ambiente isolado onde os aplicativos são executados. Essa classe não pode ser herdada.

Namespace:   System
Assembly:  mscorlib (em mscorlib.dll)


[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, 
	IEvidenceFactory

NomeDescrição
System_CAPS_pubpropertyActivationContext

Obtém o contexto de ativação para o domínio do aplicativo atual.

System_CAPS_pubpropertyApplicationIdentity

Obtém a identidade do aplicativo no domínio do aplicativo.

System_CAPS_pubpropertyApplicationTrust

Obtém informações que descrevem as permissões concedidas a um aplicativo e se o aplicativo tem um nível de confiança que permite que ele seja executado.

System_CAPS_pubpropertyBaseDirectory

Obtém o diretório base usado pelo resolvedor de assembly para investigar assemblies.

System_CAPS_pubpropertySystem_CAPS_staticCurrentDomain

Obtém o domínio de aplicativo atual do Thread atual.

System_CAPS_pubpropertyDomainManager

Obtém o Gerenciador de domínio que foi fornecido pelo host quando o domínio do aplicativo foi inicializado.

System_CAPS_pubpropertyDynamicDirectory

Obtém o diretório que usa o resolvedor de assembly para sondar assemblies criados dinamicamente.

System_CAPS_pubpropertyEvidence

Obtém a Evidence associada a esse domínio de aplicativo.

System_CAPS_pubpropertyFriendlyName

Obtém o nome amigável desse domínio do aplicativo.

System_CAPS_pubpropertyId

Obtém um inteiro que identifica exclusivamente o domínio de aplicativo dentro do processo.

System_CAPS_pubpropertyIsFullyTrusted

Obtém um valor que indica se os assemblies carregados no domínio de aplicativo atual são executados com confiança total.

System_CAPS_pubpropertyIsHomogenous

Obtém um valor que indica se o domínio de aplicativo atual tem um conjunto de permissões concedido a todos os assemblies que são carregados no domínio do aplicativo.

System_CAPS_pubpropertySystem_CAPS_staticMonitoringIsEnabled

Obtém ou define um valor que indica se o monitoramento de CPU e memória de domínios de aplicativo está habilitado para o processo atual. Depois que o monitoramento é habilitado para um processo, ele não pode ser desabilitado.

System_CAPS_pubpropertyMonitoringSurvivedMemorySize

Obtém o número de bytes que sobreviveram à última coleta e que são conhecidos por serem referenciados pelo domínio do aplicativo atual.

System_CAPS_pubpropertySystem_CAPS_staticMonitoringSurvivedProcessMemorySize

Obtém o total de bytes que sobreviveram da última coleção para todos os domínios de aplicativo no processo.

System_CAPS_pubpropertyMonitoringTotalAllocatedMemorySize

Obtém o tamanho total, em bytes, de todas as alocações de memória que foram feitas pelo domínio do aplicativo desde que ele foi criado, sem subtrair a memória que foi coletada.

System_CAPS_pubpropertyMonitoringTotalProcessorTime

Obtém o tempo total do processador usado por todos os threads durante a execução no domínio do aplicativo atual, desde o início do processo.

System_CAPS_pubpropertyPermissionSet

Obtém o conjunto de permissões de um domínio de aplicativo em área restrita.

System_CAPS_pubpropertyRelativeSearchPath

Obtém o caminho no diretório base em que o resolvedor do assembly deve investigar assemblies particulares.

System_CAPS_pubpropertySetupInformation

Obtém as informações de configuração do domínio do aplicativo para essa instância.

System_CAPS_pubpropertyShadowCopyFiles

Obtém uma indicação se o domínio do aplicativo é configurado para arquivos de cópia de sombra.

NomeDescrição
System_CAPS_pubmethodAppendPrivatePath(String)

Obsoleto. Anexa o nome do diretório especificado à lista de caminhos privado.

System_CAPS_pubmethodApplyPolicy(String)

Retorna o nome para exibição do assembly depois que a diretiva foi aplicada.

System_CAPS_pubmethodClearPrivatePath()

Obsoleto. Redefine o caminho que especifica o local dos assemblies privados para a cadeia de caracteres vazia ("").

System_CAPS_pubmethodClearShadowCopyPath()

Obsoleto. Redefine a lista de diretórios que contêm assemblies de cópia de sombra para a cadeia de caracteres vazia ("").

System_CAPS_pubmethodCreateComInstanceFrom(String, String)

Cria uma nova instância de um tipo COM especificado. Parâmetros especificam o nome de um arquivo que contém um assembly que contém o tipo e o nome do tipo.

System_CAPS_pubmethodCreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm)

Cria uma nova instância de um tipo COM especificado. Parâmetros especificam o nome de um arquivo que contém um assembly que contém o tipo e o nome do tipo.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String)

Cria um novo domínio de aplicativo com o nome especificado.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence)

Cria um novo domínio do aplicativo com o nome especificado usando a evidência fornecida.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, AppDomainSetup)

Cria um novo domínio do aplicativo usando o nome, evidência e informações de instalação do domínio do aplicativo especificados.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[])

Cria um novo domínio do aplicativo usando o nome, evidência, informações de configuração do domínio do aplicativo, conjunto de permissões padrão e a matriz de assemblies totalmente confiáveis especificados.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, String, String, Boolean)

Cria um novo domínio de aplicativo com o nome especificado, usando a evidência, o caminho base do aplicativo, o caminho de pesquisa relativo e um parâmetro que especifica se uma cópia de sombra de um assembly deve ser carregada no domínio de aplicativo.

System_CAPS_pubmethodSystem_CAPS_staticCreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[])

Cria um novo domínio de aplicativo com o nome especificado, usando a evidência, o caminho base do aplicativo, o caminho de pesquisa relativo e um parâmetro que especifica se uma cópia de sombra de um assembly deve ser carregada no domínio de aplicativo. Especifica um método de retorno de chamada invocado quando o domínio de aplicativo é inicializado e uma matriz de argumentos de cadeia de caracteres para passar o método de retorno de chamada.

System_CAPS_pubmethodCreateInstance(String, String)

Cria uma nova instância do tipo especificado definido no assembly especificado.

System_CAPS_pubmethodCreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Cria uma nova instância do tipo especificado definido no assembly especificado. Os parâmetros especificam um associador, sinalizadores de associação, argumentos de construtor, informações específicas da cultura usadas para interpretar argumentos e atributos de ativação opcionais.

System_CAPS_pubmethodCreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsoleto. Cria uma nova instância do tipo especificado definido no assembly especificado. Parâmetros especificam um associador, sinalizadores de associação, argumentos de construtor, usado para interpretar os argumentos, atributos de ativação e autorização para criar o tipo de informações de cultura específica.

System_CAPS_pubmethodCreateInstance(String, String, Object[])

Cria uma nova instância do tipo especificado definido no assembly especificado. Um parâmetro especifica uma matriz de atributos de ativação.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String)

Cria uma nova instância do tipo especificado. Parâmetros especificam o assembly no qual o tipo é definido e o nome do tipo.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Cria uma nova instância do tipo indicado definido no assembly especificado, determinando se a diferenciação entre maiúsculas e minúsculas é ignorada no nome do tipo; os atributos de associação e o associador que são usados para selecionar o tipo a ser criado; os argumentos do construtor; a cultura; e os atributos de ativação.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsoleto. Cria uma nova instância do tipo especificado. Os parâmetros especificam o nome do tipo e como ele é encontrado e criado.

System_CAPS_pubmethodCreateInstanceAndUnwrap(String, String, Object[])

Cria uma nova instância do tipo especificado. Parâmetros especificam o assembly no qual o tipo, o nome do tipo e uma matriz de atributos de ativação são definidos.

System_CAPS_pubmethodCreateInstanceFrom(String, String)

Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsoleto. Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateInstanceFrom(String, String, Object[])

Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String)

Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])

Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado, especificando se o caso do nome do tipo é ignorado; os atributos de associação e o associador que são usados para selecionar o tipo a ser criado; os argumentos do construtor; a cultura; e os atributos de ativação.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)

Obsoleto. Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateInstanceFromAndUnwrap(String, String, Object[])

Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado.

System_CAPS_pubmethodCreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.(Herdado de MarshalByRefObject.)

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

Define um assembly dinâmico com o nome e o modo de acesso especificados.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso e a evidência.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso, evidência e solicitações de permissão.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

Define um assembly dinâmico com o nome especificado, o modo de acesso e atributos personalizados.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>, SecurityContextSource)

Define um assembly dinâmico com o nome especificado, o modo de acesso e atributos personalizados e usando a origem especificada para seu contexto de segurança.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso e solicitações de permissão.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

Define um assembly dinâmico usando o nome especificado, o modo de acesso e o diretório de armazenamento.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)

Define um assembly dinâmico usando o nome especificado, o modo de acesso, o diretório de armazenamento e opção de sincronização.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso, diretório de armazenamento e evidência.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso, diretório de armazenamento, evidência e solicitações de permissão.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso, diretório de armazenamento, evidência, solicitações de permissão e opção de sincronização.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)

Obsoleto. Define um assembly dinâmico com o nome especificado, o modo de acesso, diretório de armazenamento, evidência, solicitações de permissão, opção de sincronização e atributos personalizados.

System_CAPS_pubmethodDefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)

Obsoleto. Define um assembly dinâmico usando o nome especificado, o modo de acesso, o diretório de armazenamento e solicitações de permissão.

System_CAPS_pubmethodDoCallBack(CrossAppDomainDelegate)

Executa o código em outro domínio de aplicativo que é identificado pelo delegado especificado.

System_CAPS_pubmethodEquals(Object)

Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)

System_CAPS_pubmethodExecuteAssembly(String)

Executa o assembly contido no arquivo especificado.

System_CAPS_pubmethodExecuteAssembly(String, Evidence)

Obsoleto. Executa o assembly contido no arquivo especificado, usando a evidência especificada.

System_CAPS_pubmethodExecuteAssembly(String, Evidence, String[])

Obsoleto. Executa o assembly contido no arquivo especificado, usando a evidência e os argumentos especificados.

System_CAPS_pubmethodExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)

Obsoleto. Executa o assembly contido no arquivo especificado, usando a evidência especificada, argumentos, valor de hash e o algoritmo de hash.

System_CAPS_pubmethodExecuteAssembly(String, String[])

Executa o assembly contido no arquivo especificado usando argumentos especificados.

System_CAPS_pubmethodExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)

Executa o assembly contido no arquivo especificado, usando os argumentos especificados, o valor de hash e o algoritmo de hash.

System_CAPS_pubmethodExecuteAssemblyByName(AssemblyName, Evidence, String[])

Obsoleto. Executa o assembly devido a um AssemblyName, usando a evidência especificada e os argumentos.

System_CAPS_pubmethodExecuteAssemblyByName(AssemblyName, String[])

Executa o assembly devido a um AssemblyName, usando os argumentos especificados.

System_CAPS_pubmethodExecuteAssemblyByName(String)

Executa um assembly recebe seu nome de exibição.

System_CAPS_pubmethodExecuteAssemblyByName(String, Evidence)

Obsoleto. Executa um assembly recebe seu nome de exibição, usando a evidência especificada.

System_CAPS_pubmethodExecuteAssemblyByName(String, Evidence, String[])

Obsoleto. Executa o assembly recebe seu nome de exibição, usando a evidência especificada e os argumentos.

System_CAPS_pubmethodExecuteAssemblyByName(String, String[])

Executa o assembly recebe seu nome de exibição, usando os argumentos especificados.

System_CAPS_pubmethodGetAssemblies()

Obtém os assemblies que foram carregados no contexto de execução desse domínio de aplicativo.

System_CAPS_pubmethodSystem_CAPS_staticGetCurrentThreadId()

Obsoleto. Obtém o identificador atual de thread.

System_CAPS_pubmethodGetData(String)

Obtém o valor armazenado no domínio atual do aplicativo para o nome especificado.

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetLifetimeService()

Recupera o objeto atual de serviço de vida útil que controla a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)

System_CAPS_pubmethodGetType()

Obtém o tipo da instância atual.

System_CAPS_pubmethodInitializeLifetimeService()

Fornece o AppDomain tempo de vida infinito, impedindo que uma concessão que está sendo criada.(Substitui o MarshalByRefObject.InitializeLifetimeService().)

System_CAPS_pubmethodIsCompatibilitySwitchSet(String)

Obtém um valor anulável booliano que indica se todos os comutadores compatibilidade são definidos e nesse caso, se a opção de compatibilidade especificada está definida.

System_CAPS_pubmethodIsDefaultAppDomain()

Retorna um valor que indica se o domínio de aplicativo é o domínio de aplicativo padrão para o processo.

System_CAPS_pubmethodIsFinalizingForUnload()

Indica se esse domínio de aplicativo é descarregar e os objetos que ela contém finalizados pelo common language runtime.

System_CAPS_pubmethodLoad(AssemblyName)

Carrega um Assembly dado seu AssemblyName.

System_CAPS_pubmethodLoad(AssemblyName, Evidence)

Obsoleto. Carrega um Assembly dada sua AssemblyName.

System_CAPS_pubmethodLoad(Byte[])

Carrega o Assembly com uma imagem baseada em formato COFF, contendo um Assembly emitido.

System_CAPS_pubmethodLoad(Byte[], Byte[])

Carrega o Assembly com um arquivo de objeto comum formato COFF baseada em imagem contendo um emitidas Assembly. Os bytes brutos que representa os símbolos para o Assembly também são carregados.

System_CAPS_pubmethodLoad(Byte[], Byte[], Evidence)

Obsoleto. Carrega o Assembly com um arquivo de objeto comum formato COFF baseada em imagem contendo um emitidas Assembly. Os bytes brutos que representa os símbolos para o Assembly também são carregados.

System_CAPS_pubmethodLoad(String)

Carrega um Assembly de acordo com seu nome de exibição.

System_CAPS_pubmethodLoad(String, Evidence)

Obsoleto. Carrega um Assembly recebe seu nome de exibição.

System_CAPS_pubmethodReflectionOnlyGetAssemblies()

Retorna os assemblies que tiverem sido carregados no contexto de somente reflexão do domínio do aplicativo.

System_CAPS_pubmethodSetAppDomainPolicy(PolicyLevel)

Obsoleto. Estabelece o nível de política de segurança para esse domínio de aplicativo.

System_CAPS_pubmethodSetCachePath(String)

Obsoleto. Estabelece o caminho de diretório especificado como o local onde os assemblies são feitas cópias de sombra.

System_CAPS_pubmethodSetData(String, Object)

Atribui o valor especificado para a propriedade de domínio do aplicativo especificado.

System_CAPS_pubmethodSetData(String, Object, IPermission)

Atribui o valor especificado para a propriedade de domínio de aplicativo especificado, com uma permissão especificada a demanda do chamador quando a propriedade é recuperada.

System_CAPS_pubmethodSetDynamicBase(String)

Obsoleto. Estabelece o caminho de diretório especificado como o diretório base para subpastas onde os arquivos gerados dinamicamente são armazenados e acessados.

System_CAPS_pubmethodSetPrincipalPolicy(PrincipalPolicy)

Especifica como objetos de identidade e de entidade de segurança devem ser anexados a um thread se a thread tenta se associar a uma entidade de segurança durante a execução nesse domínio do aplicativo.

System_CAPS_pubmethodSetShadowCopyFiles()

Obsoleto. Ativa a cópia de sombra.

System_CAPS_pubmethodSetShadowCopyPath(String)

Obsoleto. Estabelece o caminho de diretório especificado como o local da cópia de sombra de assemblies.

System_CAPS_pubmethodSetThreadPrincipal(IPrincipal)

Define o objeto de entidade de segurança padrão a ser anexado aos threads se eles tentam se associar a uma entidade de segurança durante a execução nesse domínio de aplicativo.

System_CAPS_pubmethodToString()

Obtém uma representação de cadeia de caracteres que inclui o nome amigável do domínio do aplicativo e as políticas de contexto.(Substitui o Object.ToString().)

System_CAPS_pubmethodSystem_CAPS_staticUnload(AppDomain)

Descarrega o domínio de aplicativo especificado.

NomeDescrição
System_CAPS_pubeventAssemblyLoad

Ocorre quando um assembly é carregado.

System_CAPS_pubeventAssemblyResolve

Ocorre quando a resolução de um assembly falha.

System_CAPS_pubeventDomainUnload

Ocorre quando um AppDomain está prestes a ser descarregado.

System_CAPS_pubeventFirstChanceException

Ocorre quando uma exceção é lançada no código gerenciado, antes que o tempo de execução procure na pilha de chamadas um manipulador de exceção no domínio do aplicativo.

System_CAPS_pubeventProcessExit

Ocorre quando o processo pai do domínio de aplicativo padrão é encerrado.

System_CAPS_pubeventReflectionOnlyAssemblyResolve

Ocorre quando a resolução de um assembly falha no contexto somente para reflexão.

System_CAPS_pubeventResourceResolve

Ocorre quando a resolução de um recurso falha devido ao recurso não ser um recurso vinculado ou inserido válido no assembly.

System_CAPS_pubeventTypeResolve

Ocorre quando a resolução de um tipo falha.

System_CAPS_pubeventUnhandledException

Ocorre quando uma exceção não é capturada.

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usada para obter as informações de tipo para uma interface.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_AppDomain.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso às propriedades e métodos expostos por um objeto.

Domínios de aplicativo, que são representados por AppDomain objetos, ajuda a fornecer limites, descarregamento, segurança e isolamento para código gerenciado em execução.

  • Use domínios de aplicativo para isolar as tarefas que podem colocar um processo. Se o estado do AppDomain que está executando uma tarefa torna-se instável, a AppDomain pode ser descarregado sem afetar o processo. Isso é importante quando um processo deve ser executado por longos períodos sem reiniciar. Você também pode usar domínios de aplicativo para isolar as tarefas que não devem compartilhar dados.

  • Se um assembly foi carregado para um domínio de aplicação padrão, este não pode ser descarregado da memória enquanto o processo estiver em execução. No entanto, se você abrir um segundo domínio de aplicativo para carregar e executar o assembly, o assembly é descarregado quando o domínio de aplicativo é descarregado. Use essa técnica para minimizar o conjunto de trabalho de processos de execução demorada que usam ocasionalmente DLLs grandes.

Múltiplos domínios de aplicação podem ser executados em um único processo; no entanto, não há uma correlação de um para um entre dominios de aplicação e threads. Vários threads podem pertencer a um único domínio de aplicativo e, enquanto um determinado thread não está limitado a um único domínio de aplicativo, a qualquer momento determinado, um thread é executado em um único domínio de aplicativo.

Domínios de aplicativo são criados usando o CreateDomain método. AppDomaininstâncias são usadas para carregar e executar assemblies (Assembly). Quando um AppDomain é não mais em uso, ele pode ser descarregado.

O AppDomain classe implementa um conjunto de eventos que habilitam aplicativos para responder quando um assembly é carregado, quando um domínio de aplicativo será descarregado, ou quando uma exceção sem tratamento.

Para obter mais informações sobre como usar domínios de aplicativo, consulte Domínios do aplicativo.

Essa classe implementa o MarshalByRefObject, _AppDomain, e IEvidenceFactory interfaces.

Você nunca deve criar um wrapper remoto para um AppDomain objeto. Isso foi possível publicar uma referência remota ao AppDomain, expor métodos, como CreateInstance para acesso remoto e efetivamente destruição de segurança de acesso de código para que AppDomain. Mal-intencionado clientes conectando-se para a remota AppDomain poderia obter acesso a qualquer recurso de AppDomain tem acesso ao. Não criar wrappers remota para qualquer tipo que estende MarshalByRefObject e que implementa os métodos que podem ser usados por clientes mal-intencionado para ignorar o sistema de segurança.

System_CAPS_cautionCuidado

O valor padrão para o AppDomainSetup.DisallowCodeDownload é de propriedade false. Essa configuração não é segura para serviços. Para impedir que serviços baixando código parcialmente confiável, defina essa propriedade como true.

Este exemplo mostra como criar um novo AppDomain, criar uma instância de um tipo em que novos AppDomaine se comunicar com o objeto do tipo. Além disso, este exemplo mostra como descarregar o AppDomain fazendo com que o objeto a ser coletado como lixo.

using System;
using System.Reflection;
using System.Threading;

class Module1
{
    public static void Main()
    {
        // Get and display the friendly name of the default AppDomain.
        string callingDomainName = Thread.GetDomain().FriendlyName;
        Console.WriteLine(callingDomainName);

        // Get and display the full name of the EXE assembly.
        string exeAssembly = Assembly.GetEntryAssembly().FullName;
        Console.WriteLine(exeAssembly);

        // Construct and initialize settings for a second AppDomain.
        AppDomainSetup ads = new AppDomainSetup();
        ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;

        ads.DisallowBindingRedirects = false;
        ads.DisallowCodeDownload = true;
        ads.ConfigurationFile = 
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

        // Create the second AppDomain.
        AppDomain ad2 = AppDomain.CreateDomain("AD #2", null, ads);

        // Create an instance of MarshalbyRefType in the second AppDomain. 
        // A proxy to the object is returned.
        MarshalByRefType mbrt = 
            (MarshalByRefType) ad2.CreateInstanceAndUnwrap(
                exeAssembly, 
                typeof(MarshalByRefType).FullName
            );

        // Call a method on the object via the proxy, passing the 
        // default AppDomain's friendly name in as a parameter.
        mbrt.SomeMethod(callingDomainName);

        // Unload the second AppDomain. This deletes its object and 
        // invalidates the proxy object.
        AppDomain.Unload(ad2);
        try
        {
            // Call the method again. Note that this time it fails 
            // because the second AppDomain was unloaded.
            mbrt.SomeMethod(callingDomainName);
            Console.WriteLine("Sucessful call.");
        }
        catch(AppDomainUnloadedException)
        {
            Console.WriteLine("Failed call; this is expected.");
        }
    }
}

// Because this class is derived from MarshalByRefObject, a proxy 
// to a MarshalByRefType object can be returned across an AppDomain 
// boundary.
public class MarshalByRefType : MarshalByRefObject
{
    //  Call this method via a proxy.
    public void SomeMethod(string callingDomainName)
    {
        // Get this AppDomain's settings and display some of them.
        AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
        Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}", 
            ads.ApplicationName, 
            ads.ApplicationBase, 
            ads.ConfigurationFile
        );

        // Display the name of the calling AppDomain and the name 
        // of the second domain.
        // NOTE: The application's thread has transitioned between 
        // AppDomains.
        Console.WriteLine("Calling from '{0}' to '{1}'.", 
            callingDomainName, 
            Thread.GetDomain().FriendlyName
        );
    }
}

/* This code produces output similar to the following: 

AppDomainX.exe
AppDomainX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AppName=, AppBase=C:\AppDomain\bin, ConfigFile=C:\AppDomain\bin\AppDomainX.exe.config
Calling from 'AppDomainX.exe' to 'AD #2'.
Failed call; this is expected.
 */

.NET Framework
Disponível desde 1.1
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: