Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применяет изменения в метаданных и изменениях в коде общего промежуточного языка (CIL) к выполняемой процедуре.
Синтаксис
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Параметры
cbMetadata [in] Размер в байтах разностных метаданных.
pbMetadata [in] Буфер, содержащий разностные метаданные. Адрес буфера возвращается из метода IMetaDataEmit2::SaveDeltaToMemory .
Относительные виртуальные адреса (RVAs) в метаданных должны быть относительными к началу кода CIL.
cbIL [in] Размер в байтах кода разностного CIL.
pbIL [in] Буфер, содержащий обновленный код CIL.
Замечания
Параметр pbMetadata находится в специальном формате разностных метаданных (как выходные данные IMetaDataEmit2::SaveDeltaToMemory).
pbMetadata принимает предыдущие метаданные в качестве основы и описывает отдельные изменения, применяемые к этой базе.
Напротив, pbIL[параметр ] содержит новый CIL для обновленного метода и предназначен для полной замены предыдущего CIL для этого метода.
При создании разностного CIL и метаданных в памяти отладчика отладчик вызывает ApplyChanges отправку изменений в среду CLR. Среда выполнения обновляет свои таблицы метаданных, помещает новый CIL в процесс и настраивает JIT-компиляцию нового CIL. При применении изменений отладчик должен вызвать IMetaDataEmit2::ResetENCLog , чтобы подготовиться к следующему сеансу редактирования. Отладчик может продолжить процесс.
Всякий раз, когда отладчик вызывает ApplyChanges модуль с разностными метаданными, он также должен вызывать IMetaDataEmit::ApplyEditAndContinue с одинаковыми разностными метаданными на всех его копиях метаданных этого модуля, за исключением копии, используемой для выдачи изменений. Если копия метаданных как-то перестает синхронизироваться с фактическими метаданными, отладчик всегда может выбросить копию и получить новую копию.
ApplyChanges Если метод завершается ошибкой, сеанс отладки находится в недопустимом состоянии и должен быть перезапущен.
Требования
Платформ: См. сведения о поддерживаемых операционных системах .NET.
Заголовок: CorDebug.idl, CorDebug.h
Библиотека: CorGuids.lib
Версии .NET: Доступно с .NET Framework 2.0