Aracılığıyla paylaş


IMetaDataEmit::GetSaveSize Method

Derlemenin tahmini ikili boyutunu ve meta verilerini geçerli kapsamda alır.

Syntax

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

Parameters

fSave [in] Doğru veya yaklaşık bir boyut elde edilip edilmeyeceğini belirten CorSaveSize numaralandırmasının değeri. Yalnızca üç değer geçerlidir: cssAccurate, cssQuick ve cssDiscardTransientCAs:

  • cssAccurate tam kaydetme boyutunu döndürür, ancak hesaplaması daha uzun sürer.

  • cssQuick, güvenlik için doldurulmuş bir boyut döndürür, ancak hesaplaması daha kısa sürer.

  • cssDiscardTransientCAs atılabilir özel öznitelikleri atabileceğini söyler GetSaveSize .

pdwSaveSize [out] Dosyayı kaydetmek için gereken boyuta işaret eden bir işaretçi.

Remarks

GetSaveSize derlemeyi ve tüm meta verilerini geçerli kapsamda kaydetmek için gereken alanı bayt cinsinden hesaplar. ( IMetaDataEmit::SaveToStream yöntemine yapılan bir çağrı bu sayıda bayt yayar.)

Çağıran IMapToken arabirimini uygularsa ( IMetaDataEmit::SetHandler veya IMetaDataEmit::Merge aracılığıyla), GetSaveSize meta verileri iyileştirmek ve sıkıştırmak için iki geçiş gerçekleştirir. Aksi takdirde, hiçbir iyileştirme gerçekleştirilmez.

İyileştirme gerçekleştirilirse ilk geçiş, içeri aktarma zamanı aramalarının performansını ayarlamak için meta veri yapılarını sıralar. Bu adım genellikle kayıtların taşınmasıyla sonuçlanır ve gelecekteki başvurular için araç tarafından tutulan belirteçlerin geçersiz kılınmış olması yan etkiyle sonuçlanır. Ancak meta veriler, ikinci geçişten sonraya kadar çağıranı bu belirteç değişiklikleri konusunda bilgilendirmez. İkinci geçişte, başvuru geçerli meta veri kapsamında bildirilen bir türe veya üyeye olduğunda iyileştirme (erken bağlama) mdTypeRef ve mdMemberRef belirteçler gibi meta verilerin genel boyutunu azaltmaya yönelik çeşitli iyileştirmeler gerçekleştirilir. Bu geçişte başka bir belirteç eşlemesi turu gerçekleşir. Bu geçişten sonra, meta veri altyapısı çağıranı arabirimi aracılığıyla IMapToken değiştirilen belirteç değerlerini bildirir.

Requirements

Platform: Bkz. .NET tarafından desteklenen işletim sistemleri.

Header: Cor.h

Library: CorGuids.lib

See also