IMetaDataEmit::GetSaveSize-Methode
Ruft die geschätzte binäre Größe der Assembly und ihrer Metadaten im aktuellen Gültigkeitsbereich ab.
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
Parameter
fSave
[in] Ein Wert der CorSaveSize-Enumeration, der angibt, ob eine genaue oder 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, benötigt jedoch viel Zeit für die Berechnung.
cssQuick gibt eine Größe zurück, die aus Sicherheitsgründen aufgefüllt ist, benötigt jedoch weniger Zeit für die Berechnung.
cssDiscardTransientCAs teilt GetSaveSize mit, dass entfernbare benutzerdefinierte Attribute verworfen werden können.
pdwSaveSize
[out] Ein Zeiger auf die Größe, die zum Speichern der Datei erforderlich ist.
Hinweise
GetSaveSize berechnet den Speicherplatz in Bytes, der zum Speichern der Assembly und all ihrer Metadaten im aktuellen Bereich erforderlich ist. (Ein Aufruf der IMetaDataEmit::SaveToStream-Methode gibt diese Anzahl von Bytes aus.)
Wenn der Aufrufer die IMapToken-Schnittstelle (über IMetaDataEmit::SetHandler oder IMetaDataEmit::Merge) implementiert, optimiert und komprimiert GetSaveSize die Metadaten in zwei Durchläufen. Andernfalls werden keine Optimierungen ausgeführt.
Beim Durchführen der Optimierung werden im ersten Durchlauf die Metadatenstrukturen sortiert, um die Leistung von Suchläufen zur Importzeit zu optimieren. Dieser Schritt führt in der Regel zum Verschieben von Datensätzen. Als Nebeneffekt werden die Token, die das Tool für zukünftige Verweise beibehält, ungültig gemacht. Der Aufrufer wird jedoch erst nach dem zweiten Durchlauf von den Metadaten über diese Tokenänderungen informiert. Im zweiten Durchlauf werden zahlreiche Optimierungen durchgeführt, die die Gesamtgröße der Metadaten reduzieren sollen. Dazu zählt eine Optimierung (frühes Binden) der mdTypeRef-Token und der mdMemberRef-Token, wenn der Verweis auf einen Typ oder Member vorliegt, der im aktuellen Bereich deklariert ist. In diesem Durchlauf wird eine weitere Tokenzuordnung durchgeführt. Nach diesem Durchlauf benachrichtigt das Metadatenmodul den Aufrufer mithilfe seiner IMapToken-Schnittstelle über geänderte Tokenwerte.
Anforderungen
Plattformen: siehe Systemanforderungen für .NET Framework.
Header: Cor.h
Bibliothek: als Ressource in MSCorEE.dll verwendet
.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1