Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 2
Регистрация: 26.02.2012
Сообщений: 9
1

Сериализация структуры из массива

29.10.2013, 09:29. Показов 3810. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пж..

есть структура

C#
1
2
3
4
5
6
7
[Serializable]
        public struct DiskProperties
        {
            public Int16 length; //длина телеграммы
            public float[] usedSpace; //количество занятого места (Гб)
            public float[] percentUsedSpace; //% занятого места в (%)
        }
Необходимо ее перевести в массив байтов, чтобы передать по TCP\IP.

Есть пример перевода, но он работает когда в структуре нет массива, а только простые переменные. По данным примерам в массиве байтов лежат только первые значения массива(((

http://habrahabr.ru/post/114953/
C#
1
2
3
4
5
6
7
8
9
10
public static byte[] RawSerialize(object anything)
{
    int rawsize = Marshal.SizeOf(anything);
    IntPtr buffer = Marshal.AllocHGlobal(rawsize);
    Marshal.StructureToPtr(anything, buffer, false);
    byte[] rawdata = new byte[rawsize];
    Marshal.Copy(buffer, rawdata, 0, rawsize);
    Marshal.FreeHGlobal(buffer);
    return rawdata;
}
и еще один пример от туда же
C#
1
2
3
4
5
6
7
8
9
public static byte[] RawSerialize(object anything)
{
    int rawsize = Marshal.SizeOf(anything);
    byte[] rawdata = new byte[rawsize];
    GCHandle handle = GCHandle.Alloc(rawdata, GCHandleType.Pinned);
    Marshal.StructureToPtr(anything, handle.AddrOfPinnedObject(), false);
    handle.Free();
    return rawdata;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2013, 09:29
Ответы с готовыми решениями:

Сериализация структуры и пошаговое считывания данных из файла
Привет всем!!! Проблема следующая: есть класс метод которого генерирует большое количество данных...

Сериализация иерархической стоковой структуры!
Доброго времени суток! Есть вот структура, древовидная. Каждый элемент это строка. Вложенность...

Сериализация структуры
Доброго! Создаю структуру, преобразую ее а байты, а в обратном преобразовании она не полная. ...

Сериализация и десериализация структуры
Есть структура с полями string , int. Вся информация пишется в файл.txt, мне нужно сделать...

1
9 / 9 / 1
Регистрация: 27.03.2013
Сообщений: 54
29.10.2013, 11:49 2
Если у вас есть своя структура - то вы должны явно задать, какие поля сериализуются. Сериализовать массив в общем-то не получится, так как это не тип данных а всего лишь способ их хранения в памяти. Переопределяйте для вашего класса сериализатор и сериализуйте отдельно каждый элемент массива.
0
29.10.2013, 11:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2013, 11:49
Помогаю со студенческими работами здесь

Сериализация структуры для отправки по usb
В общем мне нужно отправить структуру с ПК на мконтроллер по USB, для этого мне посоветовали...

Сериализация двумерного массива
Нужно сделать сериализацию и десериализацию данного класса. Пытался сделать с помощью Json и XML....

Сериализация массива int
Здравствуйте! Мне необходимо хранить в БД перечень записей содержащую список индексов (типа...

Сериализация массива классов в c#
Здравствуйте, помогите решить возникшую проблему. Решил разобраться с Сериализацией классов, с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru