Condividi tramite


Metodo IMetaDataEmit::GetSaveSize

Aggiornamento: novembre 2007

Ottiene una stima della dimensione binaria dell'assembly e dei relativi metadati nell'ambito corrente.

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

Parametri

  • fSave
    [in] Valore dell'enumerazione CorSaveSize che specifica se ottenere una dimensione precisa o approssimativa. Sono validi solo tre valori: cssAccurate, cssQuick e cssDiscardTransientCAs:

    • cssAccurate restituisce la dimensione di salvataggio esatta, ma comporta un calcolo più lungo.

    • cssQuick restituisce una dimensione, a cui vengono aggiunti per sicurezza i caratteri di riempimento appropriati, ma comporta un calcolo meno lungo.

    • cssDiscardTransientCAs indica a GetSaveSize che può eliminare gli attributi personalizzati che possono essere rimossi.

  • pdwSaveSize
    [out] Puntatore alla dimensione necessaria per salvare il file.

Note

GetSaveSize calcola lo spazio, in byte, necessario per salvare l'assembly e tutti i relativi metadati nell'ambito corrente. Una chiamata al metodo IMetaDataEmit::SaveToStream genererebbe questo numero di byte.

Se il chiamante implementa l'interfaccia IMapToken tramite IMetaDataEmit::SetHandler o IMetaDataEmit::Merge, GetSaveSize eseguirà due passaggi sui metadati per ottimizzarli e comprimerli. In caso contrario, non verranno eseguite ottimizzazioni.

Se viene eseguita l'ottimizzazione, il primo passaggio consentirà semplicemente di ordinare le strutture dei metadati per regolare le prestazioni delle ricerche della fase di importazione. Questo passaggio in genere comporta lo spostamento di record, con il conseguente invalidamento dei token mantenuti dallo strumento per farvi riferimento successivamente. I metadati comunque informano il chiamante di queste modifiche relative ai token solo dopo il secondo passaggio. Nel secondo passaggio vengono eseguite diverse ottimizzazioni allo scopo di ridurre la dimensione complessiva dei metadati, ad esempio l'ottimizzazione (associazione anticipata) dei token mdTypeRef e mdMemberRef quando il riferimento è relativo a un tipo o un membro dichiarato nell'ambito dei metadati corrente. In questo passaggio viene eseguito un altro mapping dei token. Dopo questo passaggio il modulo di gestione dei metadati notifica al chiamante, tramite la relativa interfaccia IMapToken, qualsiasi valore dei token modificato.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: Cor.h

Libreria: utilizzata come risorsa in MSCorEE.dll

Versioni di .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1

Vedere anche

Riferimenti

IMetaDataEmit

IMetaDataEmit2