Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica as alterações nos metadados e as alterações no código da linguagem intermediária comum (CIL) ao processo em execução.
Sintaxe
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Parâmetros
cbMetadata [em] Tamanho, em bytes, dos metadados delta.
pbMetadata [em] Buffer que contém os metadados delta. O endereço do buffer é retornado do método IMetaDataEmit2::SaveDeltaToMemory .
Os endereços virtuais relativos (RVAs) nos metadados devem ser relativos ao início do código CIL.
cbIL [em] Tamanho, em bytes, do código CIL delta.
pbIL [em] Buffer que contém o código CIL atualizado.
Observações
O pbMetadata parâmetro está em um formato de metadados delta especial (como saída por IMetaDataEmit2::SaveDeltaToMemory).
pbMetadata usa metadados anteriores como base e descreve alterações individuais para aplicar a essa base.
Em contraste, o pbIL[parâmetro ] contém a nova CIL para o método atualizado e destina-se a substituir completamente a CIL anterior para esse método
Quando a CIL delta e os metadados foram criados na memória do depurador, o depurador chama ApplyChanges para enviar as alterações para o Common Language Runtime (CLR). O tempo de execução atualiza suas tabelas de metadados, coloca a nova CIL no processo e configura uma compilação just-in-time (JIT) da nova CIL. Quando as alterações tiverem sido aplicadas, o depurador deve chamar 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 chamar ApplyChanges um módulo que tenha metadados delta, ele também deve chamar IMetaDataEmit::ApplyEditAndContinue com os mesmos metadados delta em todas as suas cópias dos metadados desse 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 os metadados reais, o depurador sempre poderá jogar fora essa cópia e obter uma nova cópia.
Se o ApplyChanges método falhar, a sessão de depuração está em um estado inválido e deve ser reiniciada.
Requerimentos
Plataformas: Consulte Sistemas operacionais suportados pelo .NET.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versões .NET: Disponível desde: .NET Framework 2.0