有没有办法使用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.有没有办法做到这一点?
答案 0 :(得分:2)
我能想到的唯一方法是创建一个Custom Marshaller,当您实施ICustomMarshaller。GetNativeDataSize时,返回0.您可以使用MarshalAsAttribute来将自定义编组器应用于该字段。但是,它不会正确编组,所以我不知道你为什么要那样做。
答案 1 :(得分:0)
我认为这不可行。你为什么要那样做?