Ich habe dies folgende StrukturC# Wie kann ich ein Dictionary innerhalb einer Struktur deklarieren, die gemarshallt wird, um die Größe der Struktur zu erhalten?
[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;
}
wo StructA StructB StructC StructD
alle sind Strukturen mit [StructLayout(LayoutKind.Sequential, Pack = 1)]
und KiteClass
eine normale Klasse.
Ich erhalte dieses ArgumentException
: Typ 'MyApp.CombinedDS' kann nicht als unmanaged Struktur gemarshallt werden; keine sinnvolle Größe oder Offset kann berechnet werden, wenn ich versuche, die Größe der Struktur CombinedDS
mit
int varsize = Marshal.SizeOf(typeof(CombinedDS));
Ich mag den theoretischen Grund, dies wissen würde zu bekommen und auch die richtige Methodik oder jede Anregung zu erreichen was ich möchte.