Delen via


IMetaDataEmit::GetSaveSize Method

Hiermee haalt u de geschatte binaire grootte van de assembly en de bijbehorende metagegevens op in het huidige bereik.

Syntax

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

Parameters

fSave [in] Een waarde van de Opsomming CorSaveSize die aangeeft of een nauwkeurige of geschatte grootte moet worden opgehaald. Er zijn slechts drie waarden geldig: cssAccurate, cssQuick en cssDiscardTransientCAs:

  • cssAccurate retourneert de exacte opslaggrootte, maar duurt langer om te berekenen.

  • cssQuick retourneert een grootte, opgevuld voor veiligheid, maar kost minder tijd om te berekenen.

  • cssDiscardTransientCAs vertelt GetSaveSize dat het verwijderbare aangepaste kenmerken kan weggooien.

pdwSaveSize [uit] Een aanwijzer naar de grootte die nodig is om het bestand op te slaan.

Remarks

GetSaveSize berekent de benodigde ruimte in bytes om de assembly en alle bijbehorende metagegevens in het huidige bereik op te slaan. (Een aanroep naar de methode IMetaDataEmit::SaveToStream verzendt dit aantal bytes.)

Als de aanroeper de IMapToken-interface implementeert (via IMetaDataEmit::SetHandler of IMetaDataEmit::Merge), GetSaveSize voert u twee pass-over de metagegevens uit om deze te optimaliseren en te comprimeren. Anders worden er geen optimalisaties uitgevoerd.

Als optimalisatie wordt uitgevoerd, sorteert de eerste pas de metagegevensstructuren om de prestaties van zoekopdrachten in importtijd af te stemmen. Deze stap resulteert doorgaans in het verplaatsen van records, met het neveneffect dat tokens die door het hulpprogramma worden bewaard, ongeldig zijn. De metagegevens informeren de aanroeper van deze tokenwijzigingen pas na de tweede pas. In de tweede pas worden verschillende optimalisaties uitgevoerd die zijn bedoeld om de totale grootte van de metagegevens te verminderen, zoals het optimaliseren van (vroege binding) mdTypeRef en mdMemberRef tokens wanneer de verwijzing naar een type of lid is dat is gedeclareerd in het huidige metagegevensbereik. In deze pass vindt een andere ronde tokentoewijzing plaats. Na deze pass meldt de metagegevensengine de aanroeper, via de IMapToken interface, van gewijzigde tokenwaarden.

Requirements

Platformen: Zie ondersteunde besturingssystemen van .NET.

Header: Cor.h

Library: CorGuids.lib

See also