IMetaDataEmit::GetSaveSize – metoda
Získá odhadovanou binární velikost sestavení a jeho metadata v aktuálním oboru.
Syntaxe
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
Parametry
fSave
[v] Hodnota výčtu CorSaveSize , která určuje, zda získat přesnou nebo přibližnou velikost. Platné jsou pouze tři hodnoty: cssAccurate, cssQuick a cssDiscardTransientCAs:
CssAccurate vrátí přesnou velikost uložení, ale výpočet trvá déle.
cssQuick vrátí velikost polstrovanou z důvodu bezpečnosti, ale výpočet trvá méně času.
cssDiscardTransientCAs říká
GetSaveSize
, že může zahodit zahodit vlastní atributy.
pdwSaveSize
[out] Ukazatel na velikost, která je potřebná k uložení souboru.
Poznámky
GetSaveSize
vypočítá potřebné místo v bajtech k uložení sestavení a všech jeho metadat v aktuálním oboru. (Volání metody IMetaDataEmit::SaveToStream by vygenerovalo tento počet bajtů.)
Pokud volající implementuje IMapToken rozhraní (prostřednictvím IMetaDataEmit::SetHandler nebo IMetaDataEmit::Merge), GetSaveSize
provede dva předávání metadat za účelem optimalizace a komprese. V opačném případě se neprovedou žádné optimalizace.
Pokud se provede optimalizace, první předání jednoduše seřadí struktury metadat, aby se vyladil výkon hledání v době importu. Tento krok obvykle vede k přesouvání záznamů s vedlejším efektem, že tokeny, které si nástroj uchovává pro budoucí použití, jsou zneplatněné. Metadata však neinformují volajícího o těchto změnách tokenu, dokud nedojde k druhému průchodu. Ve druhém průchodu se provádějí různé optimalizace, které mají za cíl snížit celkovou velikost metadat, jako je optimalizace pryč (časná vazba) mdTypeRef
a mdMemberRef
tokeny, pokud je odkaz na typ nebo člen, který je deklarován v aktuálním oboru metadat. V tomto průchodu dojde k dalšímu kolo mapování tokenů. Po tomto předání modul metadat upozorní volajícího prostřednictvím svého IMapToken
rozhraní na všechny změněné hodnoty tokenu.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: Cor.h
Knihovny: Používá se jako prostředek v MSCorEE.dll
Verze rozhraní .NET Framework: K dispozici od verze 1.1