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 mdTypeRef
und 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.