Cenários de Assembly dinâmico de emissão de reflexão
Emissão de reflexão que suporta a criação de módulos dinâmicos, definidos em assemblies dinâmicos. Módulo dinâmico criado em um assembly dinâmico pode ser transitórios ou persistente.
Restrições de referências de tipo
Módulos (assemblies) pode fazer referência a tipos definidos em outro assembly. Um assembly dinâmico transitório com segurança pode fazer referência a tipos definidos em um assembly estático, um assembly dinâmico persistente ou outro conjunto de dinâmico transitório. No entanto, o common language runtime não permite que um módulo dinâmico persistente fazer referência a um tipo definido no módulo dinâmico transitório. Isso ocorre porque quando o módulo dinâmico persistente é carregado depois de salvo em disco, o tempo de execução não é possível resolver as referências aos tipos definidos no módulo dinâmico transitório.
Restrições de emissão para os domínios de aplicativo remoto
Alguns cenários requerem um assembly dinâmico seja criado e executado em um domínio de aplicativo remoto. Emissão de reflexão não permite que um assembly dinâmico a ser emitido diretamente a um domínio de aplicativo remoto. A solução é emitir o assembly dinâmico no domínio do aplicativo atual, salve o assembly dinâmico emitido em disco e, em seguida, carregar o assembly dinâmico para o domínio de aplicativo remoto.
Modos de acesso de Assembly dinâmico
É possível criar assemblies dinâmicos usando um dos seguintes modos de acesso:
Executar
O assembly dinâmico representado por um AssemblyBuilder é transitório. O assembly dinâmico somente pode ser usado para executar o código emitido.
Salvar
O assembly dinâmico representado por um AssemblyBuilder é persistente, mas não pode ser executado até que o arquivo salvo arquivo executável portátil (PE) foi carregado do disco.
RunAndSave
O assembly dinâmico representado por um AssemblyBuilder é persistente, mas também podem ser executadas antes e/ou depois que o assembly é salvo em disco.
O modo de acesso deve ser especificado quando o assembly dinâmico é definido e não pode ser alterado posteriormente. O runtime usa o modo de acesso de um assembly dinâmico para otimizar a representação interna do assembly.