我有以下结构
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct CombinedDS
{
public HeaderStruct Header;
public StructA a;
public StructB b;
public StructC c;
public StructD d;
public Dictionary<string, KiteClass> KiteObjDict;
}
其中StructA StructB StructC StructD
都是[StructLayout(LayoutKind.Sequential, Pack = 1)]
的结构
KiteClass
是正常的班级。
我收到 ArgumentException
:
输入&#39; MyApp.CombinedDS&#39;不能作为一种不受管理的结构进行整理;当我尝试使用
CombinedDS
的大小时,无法计算有意义的大小或偏移量
int varsize = Marshal.SizeOf(typeof(CombinedDS));
我想知道这背后的理论原因以及正确的方法或任何实现我想要的建议。
答案 0 :(得分:0)
词典是任意数量项目的集合。它的大小不为编译器所知,因为它会在添加/删除项目时在运行时更改。
如果您需要建议,可能需要在问题中添加信息,因为它没有真正指定您要实现的目标。