Método ICorDebugModule2::ApplyChanges
Aplica as alterações nos metadados e as alterações no código Microsoft intermediate linguagem (MSIL) para o processo em execução.
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Parâmetros
cbMetadata
[in] dimensionar em bytes, dos metadados delta.pbMetadata
[in] Buffer que contém metadados delta. O endereço do buffer é retornado do IMetaDataEmit2::SaveDeltaToMemory método.Os endereços virtual relativos (RVAs) nos metadados devem estar em relação ao início do código MSIL.
cbIL
[in] dimensionar em bytes, do código MSIL delta.pbIL
[in] Buffer que contém o código MSIL atualizado.
Comentários
The pbMetadata parâmetro está em um formato de metadados delta especiais (sistema autônomo saída IMetaDataEmit2::SaveDeltaToMemory). pbMetadata usa metadados anterior sistema autônomo base e descreve sistema autônomo alterações individuais para aplicar a essa base.
Em contraste, a pbIL[] parâmetro contém o MSIL novo para o método atualizado e destinado a substituir completamente o MSIL para o método anterior
Quando o delta MSIL e os metadados foram criados na memória do depurador, o depurador chama ApplyChanges para enviar as alterações para o common linguagem tempo de execução (CLR). O tempo de execução atualiza suas tabelas de metadados, coloca o MSIL novo no processo e configura uma compilação de (JIT) just-in-time do novo MSIL. Quando as alterações tiverem sido aplicadas, o depurador deve telefonar IMetaDataEmit2::ResetENCLog para se preparar para a próxima sessão de edição. O depurador pode então continuar o processo.
Sempre que o depurador chama ApplyChanges em um módulo que tem metadados delta, ele também deve chamar IMetaDataEmit::ApplyEditAndContinue com os mesmos metadados delta em todas as cópias dos metadados do módulo, exceto para a cópia usada para emitir as alterações. Se uma cópia dos metadados, de alguma forma, ficar fora de sincronia com metadados real, o depurador sempre pode jogar fora dessa cópia e obter uma nova cópia.
Se o ApplyChanges método falhar, o depurar sessão está em estado inválido e deve ser reiniciado.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorDebug.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0