IMetaDataEmit::GetSaveSize (Método)
Obtiene el tamaño binario estimado del ensamblado y sus metadatos en el ámbito actual.
Sintaxis
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
Parámetros
fSave
[in] Valor de la enumeración CorSaveSize que especifica si se va a obtener un tamaño preciso o aproximado. Solo hay tres valores válidos: cssAccurate, cssQuick y cssDiscardTransientCAs:
cssAccurate devuelve el tamaño de guardado exacto, pero tarda más tiempo en calcularse.
cssQuick devuelve un tamaño, rellenado por seguridad, pero tarda menos tiempo en calcularse.
cssDiscardTransientCAs indica a
GetSaveSize
que puede descartar atributos personalizados descartables.
pdwSaveSize
[out] Puntero al tamaño necesario para guardar el archivo.
Comentarios
GetSaveSize
calcula el espacio necesario, en bytes, para guardar el ensamblado y todos sus metadatos en el ámbito actual. (Una llamada al método IMetaDataEmit::SaveToStream emitiría este número de bytes).
Si el autor de la llamada implementa la interfaz IMapToken (mediante IMetaDataEmit::SetHandler o IMetaDataEmit::Merge), GetSaveSize
realizará dos pasos en los metadatos para optimizarlos y comprimirlos. De lo contrario, no se realiza ninguna optimización.
Si se realiza la optimización, el primer paso simplemente ordena las estructuras de metadatos para optimizar el rendimiento de las búsquedas en tiempo de importación. Este paso normalmente da como resultado mover registros, con el efecto secundario de que los tokens que retiene la herramienta para una referencia futura se invalidan. Pero los metadatos no informan al autor de la llamada de estos cambios de token hasta después de realizarse el segundo paso. En el segundo paso, se realizan varias optimizaciones destinadas a reducir el tamaño general de los metadatos, como optimizar (enlace anticipado) tokens de mdTypeRef
y mdMemberRef
cuando la referencia es a un tipo o miembro declarado en el ámbito de metadatos actual. En este paso, se produce otra ronda de asignación de tokens. Después de este paso, el motor de metadatos notifica al autor de la llamada, mediante su interfaz IMapToken
, de los valores de token modificados.
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: Cor.h
Biblioteca: usada como recurso en MSCorEE.dll
Versiones de .NET Framework: disponible a partir de la versión 1.1