Question

Is it possible to use Marshal.SizeOf() on a structure which is using a custom marshaler?

For example:

struct Abcde { 
  public int test1;
  [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MyCustomMarshaler)]
  public string customString1;
}

If I call:

var size = Marshal.SizeOf(typeof(Abcde));

an exception is thrown which says that no meaningful size or offset can be computed. I noticed that ICustomMarshaler has a method called GetNativeDataSize() but the exception is thrown regardless what I return there.

Was it helpful?

Solution

Marshal.SizeOf cannot be used with types that contain custom marshaled members.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top