Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica los cambios en los metadatos y los cambios en el código de lenguaje intermedio común (CIL) al proceso en ejecución.
Syntax
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Parámetros
cbMetadata [in] Tamaño, en bytes, de los metadatos delta.
pbMetadata [in] Búfer que contiene los metadatos delta. La dirección del búfer se devuelve del método IMetaDataEmit2::SaveDeltaToMemory .
Las direcciones virtuales relativas (RVAs) de los metadatos deben ser relativas al inicio del código CIL.
cbIL [in] Tamaño, en bytes, del código CIL delta.
pbIL [in] Búfer que contiene el código CIL actualizado.
Observaciones
El pbMetadata parámetro está en un formato de metadatos delta especial (como salida por IMetaDataEmit2::SaveDeltaToMemory).
pbMetadata toma metadatos anteriores como base y describe los cambios individuales que se aplicarán a esa base.
En cambio, el pbIL[parámetro ] contiene la nueva CIL para el método actualizado y está pensada para reemplazar completamente la CIL anterior para ese método.
Cuando se han creado la CIL delta y los metadatos en la memoria del depurador, el depurador llama ApplyChanges a para enviar los cambios a Common Language Runtime (CLR). El tiempo de ejecución actualiza sus tablas de metadatos, coloca la nueva CIL en el proceso y configura una compilación Just-In-Time (JIT) de la nueva CIL. Cuando se hayan aplicado los cambios, el depurador debe llamar a IMetaDataEmit2::ResetENCLog para prepararse para la siguiente sesión de edición. Después, el depurador puede continuar el proceso.
Cada vez que el depurador llama a ApplyChanges en un módulo que tiene metadatos delta, también debe llamar a IMetaDataEmit::ApplyEditAndContinue con los mismos metadatos delta en todas sus copias de los metadatos de ese módulo, excepto para la copia utilizada para emitir los cambios. Si una copia de los metadatos de alguna manera deja de sincronizarse con los metadatos reales, el depurador siempre puede descartar esa copia y obtener una nueva copia.
Si se produce un error en el ApplyChanges método, la sesión de depuración está en un estado no válido y debe reiniciarse.
Requisitos
Plataformas: Consulte Sistemas operativos compatibles con .NET.
Encabezado: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versiones de .NET: Disponible desde .NET Framework 2.0