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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
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
Outros recursos
Hospedagem do Common Language Runtime
Interfaces de hospedagem para o .NET Framework 2.0 e posterior