Compartilhar via


Método de IMetaDataEmit::GetSaveSize

Obtém o tamanho estimado de binário de assembly e seus metadados no escopo atual.

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

Parâmetros

  • fSave
    [in] Um valor igual a CorSaveSize enumeração que especifica se deve obter um tamanho exato ou aproximado. Somente três valores são válidos: cssAccurate, cssQuick e cssDiscardTransientCAs:

    • cssAccurate retorna a salvar o tamanho exato, mas leva mais tempo para calcular.

    • cssQuick retorna um tamanho, preenchido para segurança, mas leva menos tempo para calcular.

    • cssDiscardTransientCAs informa ao GetSaveSize que pode jogar fora descartáveis atributos personalizados.

  • pdwSaveSize
    [out] Um ponteiro para o tamanho que é necessário para salvar o arquivo.

Comentários

GetSaveSizeCalcula o espaço necessário, em bytes, para salvar o conjunto e todos os seus metadados no escopo atual. (Uma chamada para o IMetaDataEmit::SaveToStream método poderia emitir este número de bytes.)

Se o chamador implementa o IMapToken interface (por meio de IMetaDataEmit::SetHandler ou IMetaDataEmit::Merge), GetSaveSize executará duas passagens sobre os metadados para otimizar e compactar o proprietário. Caso contrário, nenhum otimizações são executadas.

Se for realizada a otimização, a primeira passagem simplesmente classifica as estruturas de metadados para ajustar o desempenho das pesquisas de tempo de importação. Essa etapa geralmente resulta em movendo registros, com o efeito colateral que tokens mantidos pela ferramenta para referência futura são invalidados. Os metadados não informar o chamador dessas alterações token até após a segunda passagem, entretanto. Na segunda passagem, várias otimizações executadas que se destinam a reduzir o tamanho geral dos metadados, como, por exemplo, otimizando distante (vinculação antecipada) mdTypeRef e mdMemberRef tokens quando a referência é um tipo ou membro que é declarado no atual escopo de metadados. Esse passo, ocorre uma nova rodada de mapeamento de token. Após essa etapa, o mecanismo de metadados notifica o chamador por meio de sua IMapToken interface, de quaisquer valores alterados token.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: Cor.h

Biblioteca: Usado como um recurso em mscoree

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1

Consulte também

Referência

Interface de IMetaDataEmit

Interface de IMetaDataEmit2