Sdílet prostřednictvím


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

Viz také