Здравствуйте, Nikolkos, Вы писали:
N>Можно так:
N>N> public static byte[] RawSerialize<T>(T anything) where T : struct {
N> int rawsize = Marshal.SizeOf(anything);
N> byte[] rawdata = new byte[rawsize];
N> GCHandle handle = GCHandle.Alloc(rawdata, GCHandleType.Pinned);
N> Marshal.StructureToPtr(anything, handle.AddrOfPinnedObject(), false);
N> handle.Free();
N> return rawdata;
N> }
N>
Как быть когда структура содержит в себе String? Особенно если его надо преобразовать в набор Ansi байтов с длинной в начале.
[MarchalAs(UnamagedType.AnsiBStr)]
public String helloStr;
При таком раскладе
int rawsize = Marshal.SizeOf(anything);
Выдаёт исключение что мол нельзя определить размер структуры.
Спасибо.