evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Este artigo fornece observações complementares à documentação de referência para esta API.
O AssemblyLoadContext representa um contexto de carga. Conceitualmente, um contexto de carga cria um escopo para carregar, resolver e potencialmente descarregar um conjunto de assemblies.
O AssemblyLoadContext existe principalmente para fornecer isolamento de carregamento de montagem. Ele permite que várias versões do mesmo assembly sejam carregadas dentro de um único processo. Ele substitui os mecanismos de isolamento fornecidos por várias AppDomain instâncias no .NET Framework.
Nota
O tempo de execução implementa dois contextos de carga de assembly:
Um aplicativo pode criar seu próprio AssemblyLoadContext para criar uma solução personalizada para cenários avançados. A personalização centra-se na definição de mecanismos de resolução de dependências.
O AssemblyLoadContext fornece dois pontos de extensão para implementar a resolução de assembly gerenciado:
null
, o carregador tentará carregar o AssemblyLoadContext.Load(AssemblyName) conjunto no AssemblyLoadContext.Default.Além disso, o método virtual permite a AssemblyLoadContext.LoadUnmanagedDll(String) personalização da resolução de assembly não gerenciado padrão. A implementação padrão retorna null
, o que faz com que a pesquisa em tempo de execução use sua política de pesquisa padrão. A política de pesquisa padrão é suficiente para a maioria dos cenários.
Não é possível carregar várias versões do tempo de execução em um único processo.
Atenção
Carregar várias cópias ou versões diferentes de assemblies de estrutura pode levar a um comportamento inesperado e difícil de diagnosticar.
Sugestão
Use limites de processo com comunicação remota ou entre processos para resolver esse problema de isolamento.
O tempo de carregamento da montagem pode dificultar o teste e a depuração. Normalmente, os assemblies são carregados sem que suas dependências sejam resolvidas imediatamente. As dependências são carregadas conforme necessário:
A implementação de AssemblyLoadContext.Load(AssemblyName) pode adicionar novas dependências que podem precisar ser isoladas para permitir que diferentes versões existam. A implementação mais natural colocaria essas dependências no contexto padrão. Um design cuidadoso pode isolar as novas dependências.
O mesmo assembly é carregado várias vezes em contextos diferentes.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraFormação
Percurso de aprendizagem
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Documentação
Sobre AssemblyLoadContext - .NET
Conceitos-chave para entender o propósito e o comportamento de AssemblyLoadContext no .NET.