Dela via


IMetaDataEmit::GetSaveSize, metod

Hämtar den beräknade binära storleken för sammansättningen och dess metadata i det aktuella omfånget.

Syntax

HRESULT GetSaveSize (  
    [in]  CorSaveSize fSave,  
    [out] DWORD       *pdwSaveSize  
);  

Parametrar

fSave
[in] Ett värde för CorSaveSize-uppräkningen som anger om du vill få en korrekt eller ungefärlig storlek. Endast tre värden är giltiga: cssAccurate, cssQuick och cssDiscardTransientCAs:

  • cssAccurate returnerar den exakta sparstorleken men tar längre tid att beräkna.

  • cssQuick returnerar en storlek, vadderad för säkerhet, men tar mindre tid att beräkna.

  • cssDiscardTransientCAs anger GetSaveSize att det kan kasta bort borttagbara anpassade attribut.

pdwSaveSize
[ut] En pekare till den storlek som krävs för att spara filen.

Kommentarer

GetSaveSize beräknar det utrymme som krävs i byte för att spara sammansättningen och alla dess metadata i det aktuella omfånget. (Ett anrop till metoden IMetaDataEmit::SaveToStream skulle generera det här antalet byte.)

Om anroparen implementerar IMapToken-gränssnittet (via IMetaDataEmit::SetHandler eller IMetaDataEmit::Merge) GetSaveSize utför två vidarekopplingar av metadata för att optimera och komprimera dem. Annars utförs inga optimeringar.

Om optimeringen utförs sorterar det första passet bara metadatastrukturerna för att justera prestandan för import-time-sökningar. Det här steget resulterar vanligtvis i att poster flyttas runt, med sidoeffekten att token som behålls av verktyget för framtida referens ogiltigförklaras. Metadata informerar dock inte anroparen om dessa tokenändringar förrän efter det andra passet. I det andra passet utförs olika optimeringar som är avsedda att minska den totala storleken på metadata, till exempel att optimera bort (tidig bindning) mdTypeRef och mdMemberRef token när referensen är till en typ eller medlem som deklareras i det aktuella metadataomfånget. I det här passet sker en annan omgång tokenmappning. Efter det här passet meddelar metadatamotorn anroparen, via dess IMapToken gränssnitt, om ändrade tokenvärden.

Krav

Plattformar: Se Systemkrav.

Huvudet: Cor.h

Bibliotek: Används som en resurs i MSCorEE.dll

.NET Framework versioner: Tillgänglig sedan 1.1

Se även