Я пытаюсь преобразовать байт [] в структуру, содержащую массив структуры, содержащий массив.Почему Marshal.PtrToStructure с вложенными массивами генерирует ExecutionEngineException?
Что-то вроде этого:
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct Util_VersionType
{
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.LPStr, SizeConst = 5000)]
public DataItemsString[] Data;
}
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct DataItemsString {
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 10)]
public System.Byte[] Value;
public System.UInt32 Validity;
}
Я использую Marshal.PtrToStructure
Иногда нет никаких проблем, но примерно 100 попыток CLR бросает неуловимый ExecutionEngineException.
Пожалуйста, помогите. Я потерян.
Это делает невероятно мало смысла, трудно представить, как можно преобразовать эту структуру в строку. –