Megosztás a következőn keresztül:


ICorDebugModule2::ApplyChanges metódus

Alkalmazza a metaadatok változásait és a közös köztes nyelv (CIL) kódjának módosításait a futó folyamatra.

Szemantika

HRESULT ApplyChanges (
    [in] ULONG                       cbMetadata,
    [in, size_is(cbMetadata)] BYTE   pbMetadata[],
    [in] ULONG                       cbIL,
    [in, size_is(cbIL)] BYTE         pbIL[]
);

Paraméterek

cbMetadata [in] A delta metaadatainak mérete bájtban.

pbMetadata [in] A delta metaadatait tartalmazó puffer. A puffer címét az IMetaDataEmit2::SaveDeltaToMemory metódus adja vissza.

A metaadatok relatív virtuális címeinek (RVA-knak) a CIL-kód elejéhez kell viszonyítani.

cbIL [in] A delta CIL-kód mérete bájtban.

pbIL [in] A frissített CIL-kódot tartalmazó puffer.

Megjegyzések

A pbMetadata paraméter speciális delta metaadat-formátumban van ( az IMetaDataEmit2 kimenete::SaveDeltaToMemory). pbMetadata a korábbi metaadatokat veszi alapul, és leírja az adott alapra alkalmazandó egyéni módosításokat.

Ezzel szemben a pbIL[] paraméter tartalmazza a frissített metódus új CIL-ét, és a metódus előző CIL-jének teljes cseréjére szolgál.

Amikor létrejött a delta CIL és a metaadatok a hibakereső memóriájában, a hibakereső meghívja ApplyChanges a módosításokat a közös nyelvi futtatókörnyezetbe (CLR). A futtatókörnyezet frissíti a metaadattáblákat, az új CIL-t a folyamatba helyezi, és beállít egy igény szerinti (JIT) összeállítást az új CIL-ről. A módosítások alkalmazásakor a hibakeresőnek fel kell hívnia az IMetaDataEmit2::ResetENCLog parancsot, hogy felkészüljön a következő szerkesztési munkamenetre. A hibakereső ezután folytathatja a folyamatot.

Amikor a hibakereső olyan modult hív ApplyChanges meg, amely különbözeti metaadatokkal rendelkezik, az IMetaDataEmit::ApplyEditAndContinue metódust is meghívja ugyanazokkal a delta metaadatokkal az adott modul metaadatainak összes példányán, kivéve a módosítások kibocsátásához használt másolatot. Ha a metaadatok egy példánya valahogy nem szinkronizálódik a tényleges metaadatokkal, a hibakereső mindig eldobhatja a másolatot, és új példányt szerezhet be.

Ha a ApplyChanges metódus sikertelen, a hibakeresési munkamenet érvénytelen állapotban van, ezért újra kell indítani.

Requirements

Platformok: Lásd: .NET által támogatott operációs rendszerek.

Fejléc: CorDebug.idl, CorDebug.h

Könyvtár: CorGuids.lib

.NET-verziók: A .NET-keretrendszer 2.0 óta érhető el