Bagikan melalui


IMetaDataEmit::GetSaveSize Method

Mendapatkan perkiraan ukuran biner rakitan dan metadatanya dalam cakupan saat ini.

Syntax

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

Parameters

fSave [di] Nilai enumerasi CorSaveSize yang menentukan apakah akan mendapatkan ukuran yang akurat atau perkiraan. Hanya tiga nilai yang valid: cssAccurate, cssQuick, dan cssDiscardTransientCAs:

  • cssAccurate mengembalikan ukuran penyimpanan yang tepat tetapi membutuhkan waktu lebih lama untuk dihitung.

  • cssQuick mengembalikan ukuran, diisi untuk keamanan, tetapi membutuhkan lebih sedikit waktu untuk menghitung.

  • cssDiscardTransientCAs memberi tahu GetSaveSize bahwa ia dapat membuang atribut kustom yang dapat dibuang.

pdwSaveSize [out] Penunjuk ke ukuran yang diperlukan untuk menyimpan file.

Remarks

GetSaveSize menghitung ruang yang diperlukan, dalam byte, untuk menyimpan rakitan dan semua metadatanya dalam cakupan saat ini. (Panggilan ke metode IMetaDataEmit::SaveToStream akan memancarkan jumlah byte ini.)

Jika penelepon mengimplementasikan antarmuka IMapToken (melalui IMetaDataEmit::SetHandler atau IMetaDataEmit::Merge), GetSaveSize akan melakukan dua pass melalui metadata untuk mengoptimalkan dan mengompresinya. Jika tidak, tidak ada pengoptimalan yang dilakukan.

Jika pengoptimalan dilakukan, pass pertama hanya mengurutkan struktur metadata untuk menyetel performa pencarian waktu impor. Langkah ini biasanya menghasilkan pemindahan rekaman, dengan efek samping bahwa token yang dipertahankan oleh alat untuk referensi di masa mendatang tidak valid. Metadata tidak menginformasikan pemanggil perubahan token ini hingga setelah pass kedua. Pada pass kedua, berbagai pengoptimalan dilakukan yang dimaksudkan untuk mengurangi ukuran keseluruhan metadata, seperti mengoptimalkan menjauh (pengikatan awal) mdTypeRef dan mdMemberRef token ketika referensi adalah ke jenis atau anggota yang dideklarasikan dalam cakupan metadata saat ini. Dalam pass ini, putaran pemetaan token lain terjadi. Setelah lulus ini, mesin metadata memberi tahu pemanggil, melalui antarmukanya IMapToken , dari nilai token yang diubah.

Requirements

Platform: Lihat Sistem operasi yang didukung .NET.

Header: Cor.h

Library: CorGuids.lib

See also