本文整理汇总了C#中IMetaDataImport.GetClassLayout方法的典型用法代码示例。如果您正苦于以下问题:C# IMetaDataImport.GetClassLayout方法的具体用法?C# IMetaDataImport.GetClassLayout怎么用?C# IMetaDataImport.GetClassLayout使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMetaDataImport
的用法示例。
在下文中一共展示了IMetaDataImport.GetClassLayout方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetClassLayout
public unsafe static bool GetClassLayout(IMetaDataImport mdi, uint token, out ushort packingSize, out uint classSize) {
packingSize = 0;
classSize = 0;
if (mdi == null)
return false;
uint dwPackSize = 0, ulClassSize = 0;
int hr = mdi.GetClassLayout(token, new IntPtr(&dwPackSize), null, 0, IntPtr.Zero, new IntPtr(&ulClassSize));
if (hr != 0)
return false;
packingSize = (ushort)dwPackSize;
classSize = ulClassSize;
return true;
}
示例2: GetFieldOffsets
public unsafe static COR_FIELD_OFFSET[] GetFieldOffsets(IMetaDataImport mdi, uint token) {
if (mdi == null)
return null;
int cFieldOffset = 0;
int hr = mdi.GetClassLayout(token, IntPtr.Zero, null, 0, new IntPtr(&cFieldOffset), IntPtr.Zero);
Debug.Assert(hr == 0 || hr == CordbgErrors.CLDB_E_RECORD_NOTFOUND);
var fieldOffsets = new COR_FIELD_OFFSET[cFieldOffset];
if (hr == 0 && fieldOffsets.Length != 0)
hr = mdi.GetClassLayout(token, IntPtr.Zero, fieldOffsets, fieldOffsets.Length, new IntPtr(&cFieldOffset), IntPtr.Zero);
return hr != 0 ? null : fieldOffsets;
}