|
|
||||||||||||||||
.NET 4.x Версии файлов. Структура22.08.2017, 16:20. Показов 1951. Ответов 25
Метки нет (Все метки)
Есть у меня к примеру такое:
Данные сериализуются в JSON. Десериализуются с параметрами
public double Count просто не участвует больше в логике).Вопрос: как грамотно организовать такое? Т.е. по константе версии узнавать что и как надо десериализовать. Добавлено через 7 минут На данном этапе можно всё перекроить, кроме структуры данных. Т.е. заменить сериализацию, заменить десериализацию, использовать любые возможности языка и любые способы программирования. Главное, чтобы на выходе можно было сотворить массив байт и запихнуть в файл. А на входе данные преобразовать обратно в классы.
0
|
||||||||||||||||
| 22.08.2017, 16:20 | |
|
Ответы с готовыми решениями:
25
Структура, доступная из всех файлов проекта ("глобальная" структура) Преобразование файлов из версии 14 в Прайм 3.1 Определение версии любых exe - файлов |
|
|
|
| 26.08.2017, 16:22 | |
|
0
|
|
|
|
||
| 26.08.2017, 16:26 [ТС] | ||
|
insite2012, ещё раз - нет. Я ж писал, просто гуглится по нему много.
Вон, товарищ выше предложил его собственный сериализатор, тоже чуток ковыряю. SomeType, когда List<SomeType>.
0
|
||
|
|
||
| 26.08.2017, 16:27 | ||
|
Тогда второй вопрос-вы планируете передавать ваши объекты по сети, я правильно понимаю?
0
|
||
|
|
||
| 26.08.2017, 16:33 [ТС] | ||
|
insite2012, на данный момент JSON позволил пересоздавать свойства при их отсутствии без выкидываний эксепшнов при десериализации.
Добавлено через 1 минуту Добавлено через 3 минуты Т.е. в новой версии сборки - обновлённая Модель данных. Передаю сборку потенциальному пользователю, а он не ловит "невозможно прочитать данные" или нечто подобное. Это блин, как его... совместимость версий. Но преимущественно "вверх". Т.е. старую версию Модели использовать неполучится, ибо код переписан. Но при этом данные никуда не деваются.
0
|
||
|
|
|||||||||||||||||
| 26.08.2017, 17:30 | |||||||||||||||||
|
Давайте я расскажу, как это реализуется в WCF, а выводы сделаете сами. Например, есть у нас контракт данных, такого вида.
Но в один прекрасный момент кто-то изменил свой контракт, добавил в него еще свойство, как в коде ниже.
По умолчанию сериализатор DataContractSerializer просто игнорирует новые поля (если не указано иное), и работоспособность системы сохраняется.Теперь более сложный сценарий. Допустим, мы передаем от стороны А контракт новой версии (v.2) стороне Б, которой известно только о старой версии (v.1), а она, в свою очередь, передает данные дальше, стороне С, которой о новых данных известно (v.2). Вопрос-что делать для того, чтобы в процессе передачи (это называется передача со сквозным изменением версии) не потерять данные? Все просто-в каждом контракте данных реализуем интерфейс IExtensibleDataObject, с одним свойством, как в коде ниже.
Вот так это работает в WCF. Что из этого можно применить в вашей задаче-вам виднее.
0
|
|||||||||||||||||
|
|
|||
| 26.08.2017, 18:08 [ТС] | |||
|
Есть у меня сторонняя программа, которая позволяет внутри своих файлов хранить конейнеры с byte[].Работая в той программе, и с помощью моего ActiveX, пользователь генерирует некоторые данные, которые как бы дополняют файл той программы. Эти данные должны быть жёстко связаны с файлом и должны быть неотделимы - что и достигается контейнерами. В моем случае, разработка моего ActiveX идёт полным ходом и уже близка к концу. Но моя Модель данных (та самая, чо сериализуется внутрь файла сторонней программы) может претерпевать изменения. Раньше (неделю назад) всё работало через JSON просто тупо и напрямую. Просто брал класс и сериализовал. У класса разве что был атрибут [Serializable]. При всём при этом со стороны пользователя идёт полное тестирование моего компонента, ибо логики там море. Вот и получается, что создав какое-то время назад "Модель-А", она претерпевает изменения. И со стороны пользователя я прошу просто "пересоздать данные пока я полностью не устаканю модель". Появляется "Модель-Б" в коде. Но в файлах пользователя то всё ещё "Модель-А". В принципе, с развитием самого моего ActiveX может быть ещё не раз изменение Модели, но есть уже закреплённые свойства, которые не будут изменяться. Кто то скажет "а чего не сделать какой нибудь конвертер, который будет при загрузке перегонять "Модель-А" в "Модель-Б"?" Я отвечу: а я захотел вот вот так
0
|
|||
| 26.08.2017, 18:08 | |
|
Структура файлов Обновление программных файлов в зависимости от номера версии (GetFileVersion)
Структура файлов Mhc Структура файлов шаблонов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|