[英]C# How can I declare a Dictionary inside a struct that is being marshalled to get the sizeof the struct?
我有以下結構
[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));
我想知道背后的理論原因,也想知道實現我想要的目標的正確方法或任何建議。
詞典是任意數量項目的集合。 它的大小對於編譯器是未知的,因為在添加/刪除項目時它將在運行時更改。
如果您需要建議,則可能需要向問題中添加信息,因為它實際上並未指定您要實現的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.