IMetaDataEmit::GetSaveSize 方法
获取程序集及其在当前作用域中元数据的估计二进制大小。
语法
HRESULT GetSaveSize (
[in] CorSaveSize fSave,
[out] DWORD *pdwSaveSize
);
参数
fSave
[in] CorSaveSize 枚举的值,该值指定是获取准确大小还是近似大小。 只有三个值有效:cssAccurate、cssQuick 和 cssDiscardTransientCAs:
cssAccurate 返回确切的保存大小,但计算时间较长。
cssQuick 返回安全填充的大小,但计算时间较短。
cssDiscardTransientCAs 告知
GetSaveSize
它可以丢弃可丢弃的自定义属性。
pdwSaveSize
[out] 指向保存文件所需大小的指针。
注解
GetSaveSize
计算在当前作用域中保存程序集及其所有元数据所需的空间(以字节为单位)。 (调用 IMetaDataEmit::SaveToStream 方法将发出此字节数。)
如果调用方(通过 IMetaDataEmit::SetHandler 或 IMetaDataEmit::Merge) 实现 IMapToken 接口,则 GetSaveSize
将针对元数据执行两次传递,以进行优化和压缩。 否则,不会执行任何优化。
如果执行了优化,则第一个传递只对元数据结构进行排序,以优化导入时搜索的性能。 此步骤通常会导致移动记录,其副作用是工具保存以备日后引用的令牌将失效。 但是,元数据直到第二次传递后才会通知调用方这些令牌更改。 在第二阶段执行各种优化的目的是减小元数据的总体大小,例如,当引用当前元数据范围中声明的类型或成员时,优化(早期绑定)mdTypeRef
和 mdMemberRef
令牌。 在此传递中,将发生另一轮令牌映射。 在此次传递后,元数据引擎通过其 IMapToken
接口通知调用方任何已更改的令牌值。
要求
平台:请参阅系统要求。
标头:Cor.h
库:用作 MSCorEE.dll 中的资源
.NET Framework 版本:1.1 及更高版本