Share via


IMetaDataEmit::GetSaveSize-Methode

Ruft die geschätzte binäre Größe der Assembly und ihre Metadaten im aktuellen Bereich ab.

Syntax

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

Parameter

fSave
[in] Ein Wert der CorSaveSize-Enumeration, der angibt, ob eine genaue oder eine ungefähre Größe abgerufen werden soll. Nur drei Werte sind gültig: cssAccurate, cssQuick und cssDiscardTransientCAs:

  • cssAccurate gibt die genaue Speichergröße zurück, die Berechnung dauert jedoch länger.

  • cssQuick gibt eine schneller berechnete Größe zurück, die mit einer Sicherheitsmarge versehen wird.

  • cssDiscardTransientCAs teilt GetSaveSize mit, dass verworfene benutzerdefinierte Attribute entfernt werden können.

pdwSaveSize
[out] Ein Zeiger auf die Größe, die zum Speichern der Datei erforderlich ist

Bemerkungen

GetSaveSize berechnet den erforderlichen Speicherplatz in Bytes, um die Assembly und alle zugehörigen Metadaten im aktuellen Bereich zu speichern. (Ein Aufruf der Methode IMetaDataEmit::SaveToStream würde diese Anzahl von Bytes ausgeben.)

Wenn der Aufrufer die IMapToken-Schnittstelle (über IMetaDataEmit::SetHandler oder IMetaDataEmit::Merge) implementiert, führt GetSaveSize zwei Durchläufe für die Metadaten aus, um sie zu optimieren und zu komprimieren. Andernfalls werden keine Optimierungen durchgeführt.

Wenn eine Optimierung durchgeführt wird, sortiert der erste Durchlauf einfach die Metadatenstrukturen, um die Leistung von Suchvorgängen beim Import zu optimieren. Dieser Schritt führt in der Regel zum Verschieben von Datensätzen und hat den Nebeneffekt, dass Token, die vom Tool für zukünftige Verweise beibehalten werden, ungültig werden. Die Metadaten informieren den Aufrufer jedoch erst nach dem zweiten Durchlauf über diese Tokenänderungen. Im zweiten Durchgang werden verschiedene Optimierungen durchgeführt, die dazu dienen, die Gesamtgröße der Metadaten zu reduzieren, z. B. Optimierung der Token mdTypeRefund mdMemberRef (mit früher Bindung), wenn auf einen Typ oder Member verwiesen wird, der im aktuellen Metadatenbereich deklariert ist. In diesem Durchlauf erfolgt eine weitere Tokenzuordnung. Nach diesem Durchlauf benachrichtigt die Metadaten-Engine den Aufrufer über seine IMapToken-Schnittstelle über alle geänderten Tokenwerte.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: Cor.h

Bibliothek: Als Ressource in „MSCorEE.dll“ verwendet

.NET Framework-Versionen: Seit Version 1.1 verfügbar.

Weitere Informationen