AppDomain Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
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 a AppDomain causa da coleta de lixo do objeto.
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 a execução de 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 e no .NET 5+, a AppDomain implementação é limitada pelo design e não fornece limites de isolamento, descarregamento ou segurança. Essas versões têm exatamente uma 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, em um determinado momento, um thread é executado em um único domínio de aplicativo.
Domínios de 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 tem acesso. Não crie wrappers remotos para qualquer tipo que se estenda MarshalByRefObject e que implemente métodos que possam ser usados por clientes mal-intencionados para ignorar o sistema de segurança.
Cuidado
O valor padrão para essa propriedade AppDomainSetup.DisallowCodeDownload é 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
| Nome | Description |
|---|---|
| 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 que o resolvedor de assembly usa para investigar assemblies. |
| CurrentDomain |
Obtém o domínio do aplicativo atual para o atual Thread. |
| 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 o resolvedor de assembly usa para investigar assemblies criados dinamicamente. |
| Evidence |
Obtém o Evidence domínio associado a este aplicativo. |
| FriendlyName |
Obtém o nome amigável deste domínio de aplicativo. |
| Id |
Obtém um inteiro que identifica exclusivamente o domínio do aplicativo dentro do processo. |
| IsFullyTrusted |
Obtém um valor que indica se os assemblies carregados no domínio do aplicativo atual são executados com confiança total. |
| IsHomogenous |
Obtém um valor que indica se o domínio do aplicativo atual tem um conjunto de permissões concedidas 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 estiver habilitado para um processo, ele não poderá ser desabilitado. |
| MonitoringSurvivedMemorySize |
Obtém o número de bytes que sobreviveram à última coleção 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 coletada. |
| MonitoringTotalProcessorTime |
Obtém o tempo total do processador que foi usado por todos os threads durante a execução no domínio do aplicativo atual, desde que o processo foi iniciado. |
| 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 de assembly deve investigar assemblies privados. |
| 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 está configurado para sombrear arquivos de cópia. |
Métodos
| Nome | Description |
|---|---|
| AppendPrivatePath(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Acrescenta o nome do diretório especificado à lista de caminhos privados. |
| ApplyPolicy(String) |
Retorna o nome de exibição do assembly após a política ter sido aplicada. |
| ClearPrivatePath() |
Obsoleto.
Obsoleto.
Obsoleto.
Redefine o caminho que especifica o local dos assemblies privados para a cadeia de caracteres vazia (""). |
| ClearShadowCopyPath() |
Obsoleto.
Obsoleto.
Obsoleto.
Redefine a lista de diretórios que contêm assemblies copiados por sombra para a cadeia de caracteres vazia (""). |
| CreateComInstanceFrom(String, String, Byte[], AssemblyHashAlgorithm) |
Cria uma nova instância de um tipo COM especificado. Os parâmetros especificam o nome de um arquivo que contém um assembly que contém o tipo e o nome do tipo. |
| CreateComInstanceFrom(String, String) |
Cria uma nova instância de um tipo COM especificado. Os parâmetros especificam o nome de um arquivo que contém um assembly que contém o tipo e o nome do tipo. |
| CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) |
Cria um novo domínio de aplicativo usando o nome, a evidência, as informações de configuração do domínio do aplicativo, o conjunto de permissões padrão e a matriz de assemblies totalmente confiáveis. |
| CreateDomain(String, Evidence, AppDomainSetup) |
Cria um novo domínio de aplicativo usando o nome, a evidência e as informações de configuração do domínio do aplicativo especificados. |
| CreateDomain(String, Evidence, String, String, Boolean, AppDomainInitializer, String[]) |
Cria um novo domínio de aplicativo com o nome fornecido, usando evidências, caminho base do aplicativo, 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 do aplicativo. Especifica um método de retorno de chamada que é invocado quando o domínio do aplicativo é inicializado e uma matriz de argumentos de cadeia de caracteres para passar o método de retorno de chamada. |
| CreateDomain(String, Evidence, String, String, Boolean) |
Cria um novo domínio de aplicativo com o nome fornecido, usando evidências, caminho base do aplicativo, 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 do aplicativo. |
| CreateDomain(String, Evidence) |
Cria um novo domínio de aplicativo com o nome fornecido usando a evidência fornecida. |
| CreateDomain(String) |
Obsoleto.
Cria um novo domínio de aplicativo com o nome especificado. |
| CreateInstance(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
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, 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, Object[]) |
Cria uma nova instância do tipo especificado definido no assembly especificado. Um parâmetro especifica uma matriz de atributos de ativação. |
| CreateInstance(String, String) |
Cria uma nova instância do tipo especificado definido no assembly especificado. |
| CreateInstanceAndUnwrap(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. |
| CreateInstanceAndUnwrap(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[]) |
Cria uma nova instância do tipo especificado definido no 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. |
| CreateInstanceAndUnwrap(String, String, Object[]) |
Cria uma nova instância do tipo especificado. Os parâmetros especificam o assembly em que o tipo é definido, o nome do tipo e uma matriz de atributos de ativação. |
| CreateInstanceAndUnwrap(String, String) |
Cria uma nova instância do tipo especificado. Os parâmetros especificam o assembly em que o tipo é definido e o nome do tipo. |
| CreateInstanceFrom(String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[], Evidence) |
Obsoleto.
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, Object[]) |
Cria uma nova instância do tipo especificado definido no arquivo de assembly especificado. |
| CreateInstanceFrom(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[], Evidence) |
Obsoleto.
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 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. |
| CreateInstanceFromAndUnwrap(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. |
| 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, Evidence, PermissionSet, PermissionSet, PermissionSet) |
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, Evidence) |
Obsoleto.
Define um assembly dinâmico usando o nome, o modo de acesso e as evidências 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 seu contexto de segurança. |
| 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, PermissionSet, PermissionSet, PermissionSet) |
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, 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, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) |
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, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean) |
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) |
Obsoleto.
Define um assembly dinâmico usando o nome, o modo de acesso, o diretório de armazenamento, as evidências e as solicitações de permissão especificados. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence) |
Obsoleto.
Define um assembly dinâmico usando o nome, o modo de acesso, o diretório de armazenamento e as evidências especificados. |
| DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, PermissionSet, PermissionSet, PermissionSet) |
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. |
| 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) |
Define um assembly dinâmico com o nome e o modo de acesso especificados. |
| DoCallBack(CrossAppDomainDelegate) |
Executa o código em outro domínio de aplicativo identificado pelo delegado especificado. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| ExecuteAssembly(String, Evidence, String[], Byte[], AssemblyHashAlgorithm) |
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, Evidence, String[]) |
Obsoleto.
Executa o assembly contido no arquivo especificado, usando as evidências e argumentos especificados. |
| ExecuteAssembly(String, Evidence) |
Obsoleto.
Executa o assembly contido no arquivo especificado, usando a evidência especificada. |
| 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. |
| ExecuteAssembly(String, String[]) |
Executa o assembly contido no arquivo especificado, usando os argumentos especificados. |
| ExecuteAssembly(String) |
Executa o assembly contido no arquivo especificado. |
| ExecuteAssemblyByName(AssemblyName, Evidence, String[]) |
Obsoleto.
Executa o assembly fornecido, AssemblyNameusando as evidências e argumentos especificados. |
| ExecuteAssemblyByName(AssemblyName, String[]) |
Executa o assembly fornecido, AssemblyNameusando os argumentos especificados. |
| ExecuteAssemblyByName(String, Evidence, String[]) |
Obsoleto.
Executa o assembly dado seu nome de exibição, usando as evidências e argumentos especificados. |
| ExecuteAssemblyByName(String, Evidence) |
Obsoleto.
Executa um assembly dado seu nome de exibição, usando a evidência especificada. |
| ExecuteAssemblyByName(String, String[]) |
Executa o assembly dado seu nome de exibição, usando os argumentos especificados. |
| ExecuteAssemblyByName(String) |
Executa um assembly dado seu nome de exibição. |
| GetAssemblies() |
Obtém os assemblies que foram carregados no contexto de execução deste domínio de aplicativo. |
| GetCurrentThreadId() |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Obtém o identificador de thread atual. |
| GetData(String) |
Obtém o valor armazenado no domínio do aplicativo atual 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 tempo de vida para essa 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() |
Dá um AppDomain 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 dessa instância. (Herdado de MarshalByRefObject) |
| IsCompatibilitySwitchSet(String) |
Obtém um valor booliano anulável que indica se as opções de compatibilidade estão definidas e, em caso afirmativo, se o comutador de compatibilidade especificado está definido. |
| IsDefaultAppDomain() |
Retorna um valor que indica se o domínio do aplicativo é o domínio de aplicativo padrão para o processo. |
| IsFinalizingForUnload() |
Indica se esse domínio do aplicativo está descarregando e os objetos que ele contém estão sendo finalizados pelo common language runtime. |
| Load(AssemblyName, Evidence) |
Obsoleto.
Carrega um Assembly determinado .AssemblyName |
| Load(AssemblyName) |
Carrega um Assembly determinado .AssemblyName |
| Load(Byte[], Byte[], Evidence) |
Obsoleto.
Carrega a Assembly imagem baseada em COFF (formato de arquivo de objeto) comum que contém um emitido Assembly. Os bytes brutos que representam os símbolos para o Assembly também são carregados. |
| Load(Byte[], Byte[]) |
Carrega a Assembly imagem baseada em COFF (formato de arquivo de objeto) comum que contém um emitido Assembly. Os bytes brutos que representam os símbolos para o Assembly também são carregados. |
| Load(Byte[]) |
Carrega a Assembly imagem baseada em COFF (formato de arquivo de objeto) comum que contém um emitido Assembly. |
| Load(String, Evidence) |
Obsoleto.
Carrega um Assembly determinado nome de exibição. |
| Load(String) |
Carrega um Assembly determinado nome de exibição. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| ReflectionOnlyGetAssemblies() |
Retorna os assemblies que foram carregados no contexto somente reflexão do domínio do aplicativo. |
| SetAppDomainPolicy(PolicyLevel) |
Obsoleto.
Estabelece o nível de política de segurança para este domínio de aplicativo. |
| SetCachePath(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Estabelece o caminho de diretório especificado como o local onde os assemblies são copiados por sombra. |
| SetData(String, Object, IPermission) |
Atribui o valor especificado à propriedade de domínio do aplicativo especificada, com uma permissão especificada para exigir o chamador quando a propriedade é recuperada. |
| SetData(String, Object) |
Atribui o valor especificado à propriedade de domínio do aplicativo especificada. |
| SetDynamicBase(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Estabelece o caminho de diretório especificado como o diretório base para subdiretórios em que arquivos gerados dinamicamente são armazenados e acessados. |
| SetPrincipalPolicy(PrincipalPolicy) |
Especifica como os objetos principal e de identidade devem ser anexados a um thread se o thread tentar associar a uma entidade de segurança durante a execução neste domínio de aplicativo. |
| SetShadowCopyFiles() |
Obsoleto.
Obsoleto.
Obsoleto.
Ativa a cópia de sombra. |
| SetShadowCopyPath(String) |
Obsoleto.
Obsoleto.
Obsoleto.
Estabelece o caminho de diretório especificado como o local dos assemblies a serem copiados por sombra. |
| SetThreadPrincipal(IPrincipal) |
Define o objeto principal padrão a ser anexado aos threads se eles tentarem associar a uma entidade de segurança durante a execução neste 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 quaisquer políticas de contexto. |
| Unload(AppDomain) |
Obsoleto.
Descarrega o domínio do aplicativo especificado. |
Eventos
| Nome | Description |
|---|---|
| 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 é gerada no código gerenciado, antes que o runtime pesquise 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 reflexão. |
| ResourceResolve |
Ocorre quando a resolução de um recurso falha porque o recurso não é 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
| Nome | Description |
|---|---|
| _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. |