Share via


Visão geral de hospedagem

O .NET estrutura versão 2.0 permite que os aplicativos que host o common linguagem runtime (CLR) para controlar vários recursos do tempo de execução.Você pode substituir alguns recursos, sistema autônomo alocação de memória e o conjunto de carregamento por implementações personalizadas.Você pode controle o comportamento de outros recursos recebam notificações de eventos em tempo de execução e gerenciar domínios de aplicativo.

Inicializando e iniciando um tempo de execução hospedado

sistema autônomo ocorre com versões anteriores do tempo de execução, a CorBindToRuntimeEx função inicializa o tempo de execução.Você pode escolher qual versão do tempo de execução para carregar, mas um processo pode hospedar somente uma versão.Se a versão 2.0 é carregado, a função retornará o ICLRRuntimeHost interface, que é usado para iniciar o tempo de execução e executar código gerenciado.

Observação:

Em versões anteriores, o ICorRuntimeHost interface é retornado.

Iniciar o tempo de execução é discutido em Carregando o Common linguagem tempo de execução em um processo, e executar código gerenciado é discutido em Transição para hospedagem de código gerenciado.

Hospedagem de interfaces de gerenciamento

No .NET estrutura versão 2.0, o CLR fornece hospedagem interfaces de gerenciamento para controlar vários recursos do runtime hospedado, habilita aplicativo host implementar outras interfaces de gerenciamento fornecidas em tempo de execução e permite que você implemente suas próprias interfaces de gerenciamento de hospedagem.

Para fins de detecção, as interfaces de gerenciamento se enquadram em duas categorias amplas:

  • Interfaces de gerenciamento que implementa o host e o tempo de execução detecta por meio de IHostControl interface.

  • Interfaces de gerenciamento que fornece o CLR e o host descobre através de ICLRControl interface.

A tabela a seguir agrupa as interfaces pelo tipo de funcionalidade que eles fornecem.A interface mais importante dentro de cada agrupar é listada primeiro.

Group

Função

Interfaces

Gerenciamento de carregamento de assembly

Permite que o host para personalizar os locais dos quais assemblies são carregados, que as versões de forma são gerenciadas e os formatos do qual os assemblies podem ser carregados.Por exemplo, módulos (assemblies) pode ser carregado de um banco de dados em vez de arquivos no disco rígido.

O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostAssemblyManager

IHostAssemblyStore

ICLRAssemblyReferenceList

ICLRAssemblyIdentityManager

Gerenciamento de políticas

Permite que o host para especificar que as falhas de programa de forma são manipuladas, para oferecer suporte às necessidades de confiabilidade diferentes.

O host o utiliza o ICLRControl interface para obter acesso ao Gerenciador de tempo de execução e implementa IHostPolicyManager retornos de chamada para notificações de falha de tempo de execução.

ICLRPolicyManager

IHostPolicyManager

Gerenciamento da proteção de host

Permite que o host a impor seu próprio modelo de programação, ao evitar o uso de tipos especificados ou membros.Por exemplo, o host pode impedir o uso de primitivos de encadeamento ou a sincronização.

O host o utiliza o ICLRControl interface para obter acesso no Gerenciador de tempo de execução.

ICLRHostProtectionManager

Gerenciamento de memória

Permite o host a alocação de memória de controle, fornecendo substituições para as funções do sistema operacional que o CLR usa para alocar memória.

O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostMemoryManager

IHostMAlloc

ICLRMemoryNotificationCallback

Lixo coleção gerenciamento

Permite que o host a implementar métodos para receber notificação de início e no participante de coleta de lixo.Permite que o host para iniciar coletas, para coletar estatísticas e para especificar algumas características da coleção.

O host o utiliza o ICLRControl interface para obter acesso no Gerenciador de tempo de execução.O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostGCManager

ICLRGCManager

Gerenciamento de depurar

Permite que o host para descobrir se um depurador anexado, para fornecer informações de depuração adicionais e para personalizar tarefas de depuração.

O host o utiliza o ICLRControl interface para obter acesso no Gerenciador de tempo de execução.

ICLRDebugManager

CLR evento gerenciamento

Permite que um host para se registrar notificação dos eventos enumerados por EClrEvent.

O host o utiliza o ICLRControl interface para acessar o Gerenciador de tempo de execução e implemente seus manipuladores de eventos usando o IActionOnCLREvent interface.

ICLROnEventManager

IActionOnCLREvent

Gerenciamento de tarefas

Permite que o host para ser notificado sempre que um thread faz uma transição entre gerenciado e código não gerenciado.Permite que o host controlar a afinidade de thread, as tarefas são iniciadas e interrompidas e como eles são agendados.

O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostTaskManager

ICLRTaskManager

IHostTask

ICLRTask

thread gerenciamento de pool

Permite que o host para implementar seu próprio pool de segmentos para o tempo de execução usar.

O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostThreadPoolManager

Gerenciamento de sincronização

Permite que o host para implementar seus próprio primitivos de sincronização para o tempo de execução para usar.O host pode fornecer eventos, as seções críticas e semáforos.

O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostSyncManager

ICLRSyncManager

IHostCrst

IHostManualEvent

IHostAutoEvent

IHostSemaphore

Gerenciamento de E/S de conclusão

Permite que o host a implementar sua própria implementação de entrada/saída assíncrono.

O CLR usa o IHostControl interface para descobrir se um host implementa esse agrupar de interfaces.

IHostIoCompletionManager

Observação:

As interfaces de hospedagem para versões anteriores do tempo de execução estão documentadas na Interfaces de hospedagem para o .NET Framework 1.0 e 1.1.

Gerentes de domínio do aplicativo

Para os programas que hospedam o CLR, domínios de aplicativo oferecem maior confiabilidade por assemblies isolar um do outro.Módulos (assemblies) pode ser descarregado do processo por descarregar domínios de aplicativos.

Para gerenciar vários domínios do aplicativo, o .NET estrutura versão 2.0 fornece a AppDomainManager classe sistema autônomo uma classe base da qual você pode derivar seus próprios gerenciadores de domínio do aplicativo. O domínio do aplicativo Gerenciador criar para aplicativo host é essencialmente uma extensão do host, no código gerenciado.Ele é carregado automaticamente em cada domínio do aplicativo criado no seu processo.

O Gerenciador de domínio do aplicativo pode melhorar o desempenho eliminando algumas transições entre código gerenciado e.Ele pode receber notificações de criação de novos domínios de aplicativo, fornecendo uma oportunidade para configurá-los.Ele também fornece um host não gerenciado, uma maneira de chamar código gerenciado.

Consulte também

Conceitos

Carregando o Common linguagem tempo de execução em um processo

Referência

AppDomainManager

Outros recursos

Hospedagem do Common Language Runtime

Domínios de aplicativo

Interfaces de hospedagem para o .NET Framework 2.0 e posterior