我想从应用于以下结构的 StructLayout 中获取 22 字节的结构大小。
[StructLayout(LayoutKind.Explicit, CharSet = CharSet.Ansi, Pack = 1, Size = 22)]
internal unsafe struct Entry
{
[FieldOffset(0)]
private fixed char title[14];
[FieldOffset(14)]
private readonly int size;
[FieldOffset(18)]
private readonly int start;
}
有人会建议 Marshal.SizeOf 但它返回 28 字节的非托管对象的大小,这是不希望的。
int count = Marshal.SizeOf(typeof(Entry));
但是,获取此属性似乎是不可能的,因为数组“customAttributes”的长度始终为 0。
var type = typeof(Entry);
var customAttributes = type.GetCustomAttributes(typeof(StructLayoutAttribute), true);
任何解决方法?