Udostępnij za pośrednictwem


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

Zobacz też