Проблема
Я пишу программу на C#, которая используется для сохранения и загрузки списка объектов в определенной структуре, например:
ПОДПИСЬ\r\n РАЗМЕР\r\n OBJECT_DATA\r\n \r\n РАЗМЕР\r\n OBJECT_DATA\r\n \r\n Подпись — это примитивная строка, содержащая закрытый ключ для отделения моего файла данных от других файлов.
SIZE — это целочисленное значение, обозначающее количество байтов, которые OBJECT_DATA использует.
OBJECT_DATA — это класс, содержащий мои данные.
Что я пробовал
Я нашел много решений в Stackoverflow, и почти все они используют BinaryFormatter, который небезопасен и не должен использоваться.
Я также взглянул на protobuf-net, но все еще не мог применить его для решения своей проблемы.
Моя идея
Я думаю, что этапы сериализации и десериализации решения будут выглядеть так:
Сериализация (предположим, что файл ввода/вывода является двоичным файлом):
1. Откройте выходной файл и напишите подпись. 2. Прокрутите список исходных объектов. - Для каждого элемента рассчитайте размер элемента и запишите его в выходной файл. - Запись данных объекта в двоичный файл. (Я все еще путаю на этом этапе) - Напишите «\r\n», чтобы отметить, что это конец элемента. Десериализовать
1. Откройте входной файл и прочитайте подпись 2. Если Подпись соответствует моему секретному ключу: - Цикл до конца файла - Прочтите значение РАЗМЕРА. - Прочитайте объект и создайте экземпляр его класса.
Есть ли способ сохранить и загрузить сложную структуру данных в двоичный файл на С#? ⇐ C#
Место общения программистов C#
1704467366
Anonymous
Проблема
Я пишу программу на C#, которая используется для сохранения и загрузки списка объектов в определенной структуре, например:
ПОДПИСЬ\r\n РАЗМЕР\r\n OBJECT_DATA\r\n \r\n РАЗМЕР\r\n OBJECT_DATA\r\n \r\n Подпись — это примитивная строка, содержащая закрытый ключ для отделения моего файла данных от других файлов.
SIZE — это целочисленное значение, обозначающее количество байтов, которые OBJECT_DATA использует.
OBJECT_DATA — это класс, содержащий мои данные.
Что я пробовал
Я нашел много решений в Stackoverflow, и почти все они используют BinaryFormatter, который небезопасен и не должен использоваться.
Я также взглянул на protobuf-net, но все еще не мог применить его для решения своей проблемы.
Моя идея
Я думаю, что этапы сериализации и десериализации решения будут выглядеть так:
Сериализация (предположим, что файл ввода/вывода является двоичным файлом):
1. Откройте выходной файл и напишите подпись. 2. Прокрутите список исходных объектов. - Для каждого элемента рассчитайте размер элемента и запишите его в выходной файл. - Запись данных объекта в двоичный файл. (Я все еще путаю на этом этапе) - Напишите «\r\n», чтобы отметить, что это конец элемента. Десериализовать
1. Откройте входной файл и прочитайте подпись 2. Если Подпись соответствует моему секретному ключу: - Цикл до конца файла - Прочтите значение РАЗМЕРА. - Прочитайте объект и создайте экземпляр его класса.
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия