IMetaDataEmit::GetSaveSize — Metoda
Pobiera szacowany rozmiar binarny zestawu i jego metadanych w bieżącym zakresie.
Składnia
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
Parametry
fSave
[w] Wartość wyliczenia CorSaveSize określająca, czy uzyskać dokładny lub przybliżony rozmiar. Prawidłowe są tylko trzy wartości: cssAccurate, cssQuick i cssDiscardTransientCAs:
Funkcja cssAccurate zwraca dokładny rozmiar zapisywania, ale obliczenie trwa dłużej.
cssQuick zwraca rozmiar, dopełniony pod kątem bezpieczeństwa, ale zajmuje mniej czasu do obliczenia.
cssDiscardTransientCAs informuje
GetSaveSize
, że może odrzucić odrzucone atrybuty niestandardowe.
pdwSaveSize
[out] Wskaźnik do rozmiaru wymaganego do zapisania pliku.
Uwagi
GetSaveSize
oblicza wymagane miejsce w bajtach, aby zapisać zestaw i wszystkie jego metadane w bieżącym zakresie. (Wywołanie metody IMetaDataEmit::SaveToStream spowoduje emisję tej liczby bajtów).
Jeśli obiekt wywołujący implementuje interfejs IMapToken (za pośrednictwem elementu IMetaDataEmit::SetHandler lub IMetaDataEmit::Merge), GetSaveSize
wykona dwa przejścia przez metadane w celu optymalizacji i skompresowania. W przeciwnym razie nie są wykonywane żadne optymalizacje.
W przypadku przeprowadzenia optymalizacji pierwszy pass po prostu sortuje struktury metadanych w celu dostosowania wydajności wyszukiwania w czasie importu. Ten krok zazwyczaj powoduje przeniesienie rekordów z efektem ubocznym, który tokeny przechowywane przez narzędzie do przyszłego odwołania są unieważniane. Metadane nie informują obiektu wywołującego o tych zmianach tokenu dopiero po drugim przekazaniu. W drugim przebiegu są wykonywane różne optymalizacje, które mają na celu zmniejszenie ogólnego rozmiaru metadanych, takich jak optymalizowanie (wczesne powiązanie) mdTypeRef
i mdMemberRef
tokeny, gdy odwołanie dotyczy typu lub elementu członkowskiego zadeklarowanego w bieżącym zakresie metadanych. W tym przebiegu następuje kolejna runda mapowania tokenów. Po tym przekazaniu aparat metadanych powiadamia obiekt wywołujący za pośrednictwem interfejsu IMapToken
o wszelkich zmienionych wartościach tokenu.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: Cor.h
Biblioteki: Używane jako zasób w MSCorEE.dll
.NET Framework wersje: dostępne od wersji 1.1