代码之家  ›  专栏  ›  技术社区  ›  SwDevMan81 Chris Barlow

如何使用marshal.sizeof忽略结构中的字段大小?

  •  2
  • SwDevMan81 Chris Barlow  · 技术社区  · 15 年前

    是否可以使用marshal.size of忽略结构大小计算中的字段

    前任:

    public struct Message
    {
       public ushort X;
       public ushort Y; // Ignore this field in the calculation
    }
    
    int size = Marshal.SizeOf(typeof(Message));
    

    现在尺寸是4。我想要2码的。有办法吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   JP Alioto    15 年前

    我唯一能想到的方法就是 Custom Marshaller 当你实施 ICustomMarshaller . GetNativeDataSize ,返回0。你会使用 MarshalAsAttribute 将自定义封送拆收器仅应用于该字段。但是,它不能正确地进行编组,所以我不知道你为什么要这样做。

        2
  •  0
  •   Yvo    15 年前

    我认为那是不可能的。你为什么要这么做?