Compartilhar via


AppDomain Classe

Definição

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

public ref class AppDomain sealed : MarshalByRefObject
public ref class AppDomain : MarshalByRefObject
public ref class AppDomain sealed : MarshalByRefObject, _AppDomain, System::Security::IEvidenceFactory
public sealed class AppDomain : MarshalByRefObject
public class AppDomain : MarshalByRefObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject, _AppDomain, System.Security.IEvidenceFactory
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AppDomain : MarshalByRefObject
type AppDomain = class
    inherit MarshalByRefObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type AppDomain = class
    inherit MarshalByRefObject
    interface _AppDomain
    interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
    inherit MarshalByRefObject
    interface _AppDomain
    interface IEvidenceFactory
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AppDomain = class
    inherit MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Public Class AppDomain
Inherits MarshalByRefObject
Public NotInheritable Class AppDomain
Inherits MarshalByRefObject
Implements _AppDomain, IEvidenceFactory
Herança
Atributos
Implementações

Exemplos

Este exemplo mostra como criar uma nova AppDomaininstância de um tipo nesse novo AppDomaine se comunicar com o objeto desse tipo. Além disso, este exemplo mostra como descarregar o AppDomain objeto que causa a coleta de lixo.

using namespace System;
using namespace System::Reflection;
using namespace System::Threading;
using namespace System::Security::Policy;

// Because this class is derived from MarshalByRefObject, a proxy 
// to a MarshalByRefType object can be returned across an AppDomain 
// boundary.
ref class MarshalByRefType : MarshalByRefObject
{
public:
    //  Call this method via a proxy.
    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
        );
    };
};

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 = gcnew 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", 
        AppDomain::CurrentDomain->Evidence, ads);

    // Create an instance of MarshalbyRefType in the second AppDomain. 
    // A proxy to the object is returned.
    MarshalByRefType^ mbrt = 
        (MarshalByRefType^) ad2->CreateInstanceAndUnwrap(
            exeAssembly, 
            MarshalByRefType::typeid->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.");
    }
}

/* 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.
 */
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.
 */
open System
open System.Reflection
open System.Threading

// Because this class is derived from MarshalByRefObject, a proxy
// to a MarshalByRefType object can be returned across an AppDomain
// boundary.
type MarshalByRefType() =
    inherit MarshalByRefObject()
    
    //  Call this method via a proxy.
    member _.SomeMethod(callingDomainName) =
        // Get this AppDomain's settings and display some of them.
        let ads = AppDomain.CurrentDomain.SetupInformation
        printfn $"AppName={ads.ApplicationName}, AppBase={ads.ApplicationBase}, ConfigFile={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.
        printfn $"Calling from '{callingDomainName}' to '{Thread.GetDomain().FriendlyName}'."

// Get and display the friendly name of the default AppDomain.
let callingDomainName = Thread.GetDomain().FriendlyName
printfn $"{callingDomainName}"

// Get and display the full name of the EXE assembly.
let exeAssembly = Assembly.GetEntryAssembly().FullName
printfn $"{exeAssembly}"

// Construct and initialize settings for a second AppDomain.
let ads = AppDomainSetup()
ads.ApplicationBase <- AppDomain.CurrentDomain.BaseDirectory

ads.DisallowBindingRedirects <- false
ads.DisallowCodeDownload <- true
ads.ConfigurationFile <-
    AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

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

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

// 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
    printfn "Sucessful call."
with :? AppDomainUnloadedException ->
    printfn "Failed call this is expected."

(* 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.
 *)
Imports System.Reflection
Imports System.Threading

Module Module1
    Sub Main()

        ' Get and display the friendly name of the default AppDomain.
        Dim callingDomainName As String = Thread.GetDomain().FriendlyName
        Console.WriteLine(callingDomainName)

        ' Get and display the full name of the EXE assembly.
        Dim exeAssembly As String = [Assembly].GetEntryAssembly().FullName
        Console.WriteLine(exeAssembly)

        ' Construct and initialize settings for a second AppDomain.
        Dim ads As New AppDomainSetup()
        ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory
        ads.DisallowBindingRedirects = False
        ads.DisallowCodeDownload = True
        ads.ConfigurationFile = _
            AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

        ' Create the second AppDomain.
        Dim ad2 As AppDomain = AppDomain.CreateDomain("AD #2", Nothing, ads)

        ' Create an instance of MarshalbyRefType in the second AppDomain. 
        ' A proxy to the object is returned.
        Dim mbrt As MarshalByRefType = CType( _
            ad2.CreateInstanceAndUnwrap(exeAssembly, _
                 GetType(MarshalByRefType).FullName), MarshalByRefType)

        ' 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 e As AppDomainUnloadedException
            Console.WriteLine("Failed call; this is expected.")
        End Try

    End Sub
End Module

' Because this class is derived from MarshalByRefObject, a proxy 
' to a MarshalByRefType object can be returned across an AppDomain 
' boundary.
Public Class MarshalByRefType
    Inherits MarshalByRefObject

    '  Call this method via a proxy.
    Public Sub SomeMethod(ByVal callingDomainName As String)

        ' Get this AppDomain's settings and display some of them.
        Dim ads As AppDomainSetup = 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)
    End Sub
End Class

'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.

Comentários

Os domínios de aplicativo, que são representados por AppDomain objetos, ajudam a fornecer limites de isolamento, descarregamento e segurança para executar código gerenciado.

  • Use domínios de aplicativo para isolar tarefas que podem derrubar um processo. Se o estado do AppDomain que está executando uma tarefa se tornar instável, ele AppDomain poderá 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 tarefas que não devem compartilhar dados.

  • Se um assembly for carregado no domínio de aplicativo padrão, ele não poderá 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 será descarregado quando o domínio do aplicativo for descarregado. Use essa técnica para minimizar o conjunto de trabalho de processos de execução longa que ocasionalmente usam DLLs grandes.

Observação

No .NET Core, a AppDomain implementação é limitada por design e não fornece limites de isolamento, descarregamento ou segurança. Para o .NET Core, há exatamente um AppDomain. Isolamento e descarregamento são fornecidos por meio AssemblyLoadContextde . Os limites de segurança devem ser fornecidos por limites de processo e técnicas de comunicação remota apropriadas.

Vários domínios de aplicativo podem ser executados em um único processo; no entanto, não há uma correlação um-para-um entre domínios de aplicativo e threads. Vários threads podem pertencer a um único domínio de aplicativo e, embora um determinado thread não esteja confinado a um único domínio de aplicativo, a qualquer momento, um thread é executado em um único domínio de aplicativo.

Os domínios do aplicativo são criados usando o CreateDomain método. AppDomain as instâncias são usadas para carregar e executar assemblies (Assembly). Quando um AppDomain não está mais em uso, ele pode ser descarregado.

A AppDomain classe implementa um conjunto de eventos que permitem que os aplicativos respondam quando um assembly é carregado, quando um domínio de aplicativo será descarregado ou quando uma exceção sem tratamento é gerada.

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

Essa classe implementa as interfaces e IEvidenceFactory as MarshalByRefObject_AppDomaininterfaces.

Você nunca deve criar um wrapper remoto para um AppDomain objeto. Isso poderia publicar uma referência remota a isso AppDomain, expondo métodos como CreateInstance o acesso remoto e destruindo efetivamente a segurança de acesso ao código para isso AppDomain. Clientes mal-intencionados que se conectam ao remoted AppDomain podem obter acesso a qualquer recurso ao qual o AppDomain próprio recurso tenha acesso. Não crie wrappers remotamente para qualquer tipo que se estenda MarshalByRefObject e que implemente métodos que podem ser usados por clientes mal-intencionados para ignorar o sistema de segurança.

Cuidado

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

Propriedades

ActivationContext

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

ApplicationIdentity

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

ApplicationTrust

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.

BaseDirectory

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

CurrentDomain

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

DomainManager

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

DynamicDirectory

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

Evidence

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

FriendlyName

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

Id

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

IsFullyTrusted

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

IsHomogenous

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.

MonitoringIsEnabled

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.

MonitoringSurvivedMemorySize

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.

MonitoringSurvivedProcessMemorySize

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

MonitoringTotalAllocatedMemorySize

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.

MonitoringTotalProcessorTime

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.

PermissionSet
Obsoleto.

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

RelativeSearchPath

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

SetupInformation

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

ShadowCopyFiles

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

Métodos

AppendPrivatePath(String)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

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

ApplyPolicy(String)

Retorna o nome de exibição do assembly depois de a política ser aplicada.

ClearPrivatePath()
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

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

ClearShadowCopyPath()
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

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

CreateComInstanceFrom(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 com o tipo e o nome do tipo.

CreateComInstanceFrom(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 com o tipo e o nome do tipo.

CreateDomain(String)
Obsoleto.

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

CreateDomain(String, Evidence)

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

CreateDomain(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.

CreateDomain(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.

CreateDomain(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.

CreateDomain(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.

CreateInstance(String, String)

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

CreateInstance(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.

CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.
Obsoleto.

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, atributos de ativação e autorização para criar o tipo.

CreateInstance(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.

CreateInstanceAndUnwrap(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.

CreateInstanceAndUnwrap(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.

CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.
Obsoleto.

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

CreateInstanceAndUnwrap(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.

CreateInstanceFrom(String, String)

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

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

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

CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.
Obsoleto.

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

CreateInstanceFrom(String, String, Object[])

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

CreateInstanceFromAndUnwrap(String, String)

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

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

Cria uma nova instância do tipo indicado definido no arquivo do 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.

CreateInstanceFromAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence)
Obsoleto.
Obsoleto.

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

CreateInstanceFromAndUnwrap(String, String, Object[])

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

CreateObjRef(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)
DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess)

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, Evidence, PermissionSet, PermissionSet, PermissionSet)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)

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

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

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, PermissionSet, PermissionSet, PermissionSet)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String)

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

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

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)
Obsoleto.
Obsoleto.

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

DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet)
Obsoleto.
Obsoleto.

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

DoCallBack(CrossAppDomainDelegate)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ExecuteAssembly(String)

Executa o assembly contido no arquivo especificado.

ExecuteAssembly(String, Evidence)
Obsoleto.
Obsoleto.

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

ExecuteAssembly(String, Evidence, String[])
Obsoleto.
Obsoleto.

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

ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm)
Obsoleto.
Obsoleto.

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

ExecuteAssembly(String, String[])

Executa o assembly contido no arquivo especificado usando argumentos especificados.

ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm)
Obsoleto.

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

ExecuteAssemblyByName(AssemblyName, Evidence, String[])
Obsoleto.
Obsoleto.

Executa o assembly dado um AssemblyName usando a evidência e os argumentos especificados.

ExecuteAssemblyByName(AssemblyName, String[])

Executa o assembly dado um AssemblyName usando os argumentos especificados.

ExecuteAssemblyByName(String)

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

ExecuteAssemblyByName(String, Evidence)
Obsoleto.
Obsoleto.

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

ExecuteAssemblyByName(String, Evidence, String[])
Obsoleto.
Obsoleto.

Executa o assembly dado seu nome de exibição usando a evidência e os argumentos especificados.

ExecuteAssemblyByName(String, String[])

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

GetAssemblies()

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

GetCurrentThreadId()
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Obtém o identificador atual de thread.

GetData(String)

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

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetType()

Obtém o tipo da instância atual.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Proporciona ao AppDomain um tempo de vida infinito impedindo que uma concessão seja criada.

InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
IsCompatibilitySwitchSet(String)

Obtém um valor booliano anulável que indica se alguma a de compatibilidade está definida e, caso esteja, se a opção de compatibilidade especificada está definida.

IsDefaultAppDomain()

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

IsFinalizingForUnload()

Indica se esse domínio de aplicativo está descarregando e os objetos que ele contém estão sendo finalizados pelo Common Language Runtime.

Load(AssemblyName)

Carrega um Assembly dado seu AssemblyName.

Load(AssemblyName, Evidence)
Obsoleto.
Obsoleto.

Carrega um Assembly dado seu AssemblyName.

Load(Byte[])

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

Load(Byte[], Byte[])

Carrega o Assembly com uma imagem baseada em formato COFF, contendo um Assembly emitido. Os bytes brutos que representam os símbolos para o Assembly também são carregados.

Load(Byte[], Byte[], Evidence)
Obsoleto.
Obsoleto.

Carrega o Assembly com uma imagem baseada em formato COFF, contendo um Assembly emitido. Os bytes brutos que representam os símbolos para o Assembly também são carregados.

Load(String)

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

Load(String, Evidence)
Obsoleto.
Obsoleto.

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

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
ReflectionOnlyGetAssemblies()

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

SetAppDomainPolicy(PolicyLevel)
Obsoleto.
Obsoleto.

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

SetCachePath(String)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Estabelece o caminho de diretório especificado como o local em que é feita cópia de sombra dos assemblies.

SetData(String, Object)

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

SetData(String, Object, IPermission)

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

SetDynamicBase(String)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Estabelece o caminho de diretório especificado como o diretório base para subdiretórios em que os arquivos gerados dinamicamente são armazenados e acessados.

SetPrincipalPolicy(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.

SetShadowCopyFiles()
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Ativa a cópia de sombra.

SetShadowCopyPath(String)
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.

Estabelece o caminho de diretório especificado como o lugar para o qual é feita cópia de sombra dos assemblies.

SetThreadPrincipal(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.

ToString()

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.

Unload(AppDomain)
Obsoleto.

Descarrega o domínio de aplicativo especificado.

Eventos

AssemblyLoad

Ocorre quando um assembly é carregado.

AssemblyResolve

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

DomainUnload

Ocorre quando um AppDomain está prestes a ser descarregado.

FirstChanceException

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

ProcessExit

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

ReflectionOnlyAssemblyResolve

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

ResourceResolve

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

TypeResolve

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

UnhandledException

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

Implantações explícitas de interface

_AppDomain.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

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

_AppDomain.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações do tipo de um objeto, que podem ser usadas para obter informações de tipo para uma interface.

_AppDomain.GetTypeInfoCount(UInt32)

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

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

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

Aplica-se a

Confira também