Hvordan kan jeg ignorere en feltstørrelse i en struct hjelp Marshal.SizeOf du?

stemmer
2

Er det en måte å ignorere et felt i den beregnede av struct størrelse ved hjelp Marshal.SizeOf

ex:

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

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

Akkurat nå størrelse er 4. Jeg vil størrelsen å være 2. Er det en måte å gjøre dette?

Publisert på 23/07/2009 klokken 20:36
kilden bruker
På andre språk...                            


2 svar

stemmer
2

Den eneste måten jeg kan tenke på å gjøre det ville være å lage en egendefinert Marshaller og når du implementerer ICustomMarshaller . GetNativeDataSize , retur 0. Du ville bruke MarshalAsAttribute å bruke tilpassede marshaller til akkurat det feltet. Men det vil ikke Marshal skikkelig, så jeg vet ikke hvorfor du ønsker å gjøre det.

Svarte 23/07/2009 kl. 20:48
kilden bruker

stemmer
0

Jeg tror ikke det er mulig. Hvorfor skulle du ønske å gjøre det?

Svarte 23/07/2009 kl. 20:44
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more