Condividi tramite


Metodo IMetaDataEmit::GetSaveSize

Ottiene le dimensioni binarie stimate dell'assembly e i relativi metadati nell'ambito corrente.

Sintassi

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

Parametri

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

  • cssAccurate restituisce la dimensione di salvataggio esatta, ma richiede più tempo per calcolare.

  • cssQuick restituisce una dimensione, riempita per la sicurezza, ma richiede meno tempo per calcolare.

  • cssDiscardTransientCAs indica GetSaveSize che può generare attributi personalizzati scartati.

pdwSaveSize
[out] Puntatore alle dimensioni necessarie per salvare il file.

Commenti

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

Se il chiamante implementa l'interfaccia IMapToken (tramite IMetaDataEmit::SetHandler o IMetaDataEmit::Merge), GetSaveSize eseguirà due passaggi sui metadati per ottimizzarlo e comprimerlo. In caso contrario, non vengono eseguite ottimizzazioni.

Se viene eseguita l'ottimizzazione, il primo passaggio ordina semplicemente le strutture dei metadati per ottimizzare le prestazioni delle ricerche in fase di importazione. Questo passaggio comporta in genere lo spostamento dei record, con l'effetto collaterale che i token conservati dallo strumento per i riferimenti futuri non sono validi. I metadati non informano il chiamante di queste modifiche del token fino al secondo passaggio. Nel secondo passaggio vengono eseguite varie ottimizzazioni destinate a ridurre le dimensioni complessive dei metadati, ad esempio l'ottimizzazione (associazione anticipata) mdTypeRef e mdMemberRef i token quando il riferimento è a un tipo o a un membro dichiarato nell'ambito dei metadati corrente. In questo passaggio si verifica un altro round di mapping dei token. Dopo questo passaggio, il motore di metadati notifica al chiamante, tramite la relativa IMapToken interfaccia, di eventuali valori di token modificati.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: Cor.h

Libreria: Usato come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile da 1.1

Vedi anche