C# Как я могу объявить словарь внутри структуры, которая собирается для получения размера структуры?
У меня есть следующая структура
[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
:Тип "MyApp.CombinedDS" нельзя маршалировать как неуправляемую структуру; Никакой значимый размер или смещение не могут быть вычислены, когда я пытаюсь получить размер структуры CombinedDS
с помощью
int varsize = Marshal.SizeOf(typeof(CombinedDS));
Я хотел бы знать теоретическую причину этого, а также правильную методологию или любое предложение для достижения того, чего я хочу.
1 ответ
Словарь - это коллекция любого количества предметов. Его размер не известен компилятору, так как он будет меняться во время выполнения, когда элементы добавляются / удаляются.
Возможно, вы захотите добавить информацию к вопросу, если вам нужны предложения, так как на самом деле не указано, чего вы пытаетесь достичь.