Есть ли способ игнорировать поле в вычисляемом размере структуры, используя 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. Есть ли способ сделать это?
Единственный способ, которым я могу это сделать, - создать Custom Marshaller и при реализации ICustomMarshaller. GetNativeDataSize, return 0. Вы использовали бы MarshalAsAttribute, чтобы применить настраиваемый маршаллер только к этому полю. Но он не будет корректно маршалироваться, поэтому я не знаю, почему вы хотели бы это сделать.
Я не думаю, что это возможно. Почему вы хотите это сделать?