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

时间:2009-07-23 20:36:14

标签: c# struct marshalling sizeof

有没有办法使用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.有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我认为这不可行。你为什么要那样做?