Método IMetaDataEmit::GetSaveSize
Obtém o tamanho binário estimado do assembly e seus metadados no escopo atual.
Sintaxe
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
Parâmetros
fSave
[in] Um valor da enumeração CorSaveSize que especifica se deseja obter um tamanho preciso ou aproximado. Somente três valores são válidos: cssAccurate, cssQuick e cssDiscardTransientCAs:
cssAccurate retorna o tamanho exato para salvar, mas leva mais tempo para calcular.
cssQuick retorna um tamanho, com uma margem de segurança, mas leva menos tempo para calcular.
CssDiscardTransientCAs informa
GetSaveSize
que ele pode jogar fora atributos personalizados descartados.
pdwSaveSize
[out] Um ponteiro para o tamanho necessário para salvar o arquivo.
Comentários
GetSaveSize
calcula o espaço necessário, em bytes, para salvar o assembly e todos os seus metadados no escopo atual. (Uma chamada para o método IMetaDataEmit::SaveToStream emitiria esse número de bytes.)
Se o chamador implementar a interface IMapToken (por meio de IMetaDataEmit::SetHandler ou IMetaDataEmit::Merge), GetSaveSize
executará duas passagens sobre os metadados para otimizá-lo e compactá-lo. Caso contrário, nenhuma otimização será executada.
Se a otimização for executada, a primeira passagem simplesmente classificará as estruturas de metadados para ajustar o desempenho das pesquisas de tempo de importação. Essa etapa normalmente resulta na movimentação de registros, com o efeito colateral de que os tokens retidos pela ferramenta para referência futura são invalidados. No entanto, os metadados não informam o chamador dessas alterações de token após a segunda passagem. Na segunda passagem, são executadas várias otimizações destinadas a reduzir o tamanho geral dos metadados, como otimização (associação antecipada) dos tokens mdTypeRef
e mdMemberRef
quando a referência é para um tipo ou membro declarado no escopo de metadados atual. Nessa passagem, ocorre outra rodada de mapeamento de token. Após essa passagem, o mecanismo de metadados notifica o chamador, por meio de sua interface IMapToken
, de quaisquer valores de token alterados.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: Cor.h
Biblioteca: usada como um recurso em MSCorEE.dll
Versões do .NET Framework: disponíveis a partir da 1.1