Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Stosuje zmiany w metadanych i zmiany w kodzie wspólnego języka pośredniego (CIL) do uruchomionego procesu.
Składnia
HRESULT ApplyChanges (
[in] ULONG cbMetadata,
[in, size_is(cbMetadata)] BYTE pbMetadata[],
[in] ULONG cbIL,
[in, size_is(cbIL)] BYTE pbIL[]
);
Parametry
cbMetadata [in] Rozmiar w bajtach metadanych różnicowych.
pbMetadata [in] Bufor zawierający metadane różnicowe. Adres buforu jest zwracany z metody IMetaDataEmit2::SaveDeltaToMemory .
Względne adresy wirtualne (RVA) w metadanych powinny być względem początku kodu CIL.
cbIL [in] Rozmiar w bajtach kodu CIL różnicowego.
pbIL [in] Bufor zawierający zaktualizowany kod CIL.
Uwagi
Parametr pbMetadata ma specjalny format metadanych różnicowych (jako dane wyjściowe IMetaDataEmit2::SaveDeltaToMemory).
pbMetadata przyjmuje poprzednie metadane jako bazę i opisuje poszczególne zmiany, które mają być stosowane do tej bazy.
pbIL[Natomiast parametr ] zawiera nowy element CIL dla zaktualizowanej metody i ma całkowicie zastąpić poprzednią metodę CIL dla tej metody
Po utworzeniu funkcji CIL różnicowej i metadanych w pamięci debugera debuger wywołania ApplyChanges debugera w celu wysłania zmian do środowiska uruchomieniowego języka wspólnego (CLR). Środowisko uruchomieniowe aktualizuje tabele metadanych, umieszcza nowy element CIL w procesie i konfiguruje kompilację just in time (JIT) nowego CIL. Po zastosowaniu zmian debuger powinien wywołać metodę IMetaDataEmit2::ResetENCLog , aby przygotować się do następnej sesji edycji. Debuger może następnie kontynuować proces.
Za każdym razem, gdy debuger wywołuje ApplyChanges moduł zawierający metadane różnicowe, powinien również wywołać metodę IMetaDataEmit::ApplyEditAndContinue z tymi samymi metadanymi różnicowymi na wszystkich jego kopiach metadanych tego modułu z wyjątkiem kopii używanej do emitowania zmian. Jeśli kopia metadanych stanie się w jakiś sposób nieaktualna z rzeczywistymi metadanymi, debuger zawsze może wyrzucić kopię i uzyskać nową kopię.
ApplyChanges Jeśli metoda nie powiedzie się, sesja debugowania jest w nieprawidłowym stanie i musi zostać ponownie uruchomiona.
Requirements
Platformy: Zobacz Obsługiwane systemy operacyjne platformy .NET.
Nagłówek: CorDebug.idl, CorDebug.h
Biblioteka: CorGuids.lib
Wersje platformy .NET: Dostępne od programu .NET Framework 2.0