2

有没有办法忽略使用 Marshal.SizeOf 计算的结构大小中的字段

前任:

public struct Message
{
   public ushort X;
   public ushort Y; // Ignore this field in the calculation
}

int size = Marshal.SizeOf(typeof(Message));

现在尺寸是 4。我希望尺寸是 2。有没有办法做到这一点?

4

2 回答 2

2

我能想到的唯一方法是创建一个Custom Marshaller并在您实施ICustomMarshaller时。GetNativeDataSize,返回 0。您将使用MarshalAsAttribute将自定义编组器应用于该字段。但是,它不会正确编组,所以我不知道你为什么要这样做。

于 2009-07-23T20:48:20.323 回答
0

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

于 2009-07-23T20:44:14.417 回答