Pergunta

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.

Foi útil?

Solução

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top