簡體   English   中英

C#如何在已被整理以獲取結構大小的結構中聲明字典?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM