是否可以在使用自定义编码(marshal)拆收器的结构上使用 Marshal.SizeOf()?
例如:
struct Abcde {
public int test1;
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(MyCustomMarshaler)]
public string customString1;
}
如果我调用:
var size = Marshal.SizeOf(typeof(Abcde));
抛出一个异常,表示无法计算有意义的大小或偏移量。 我注意到 ICustomMarshaler 有一个名为 GetNativeDataSize() 的方法,但无论我在那里返回什么,都会抛出异常。
最佳答案
Marshal.SizeOf
不能用于包含自定义编码(marshal)成员的类型。
关于C# Marshal.Sizeof() 使用自定义编码(marshal)拆收器时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23239320/