214 похожих чатов

Здарова, народ. C#. Кароче у меня есть метеостанция которая подключена

к локальной сети.
Данные из нее я получаю через протокол HTTP в виде Json строки. И эти данные я десериализую в объект MyMeteostationInfo .
Это объект мне нужно сохранять в базу данных SqLite.
Сохранение данных я хочу сделать гибким, чтобы не пришлось переписывать код при добавлении нового датчика и при добавлении новой метеостанции.
Первый способ который я придумал это создать аттрибут DbColummNameAttribute. А второй способ это создание интерфейса IDbEntity. Какая реализация будет правильнее?

4 ответов

10 просмотров

Думаю что ни та, ни другая. И по-моему в Совершенном коде был пример чуть ли не один в один. И там был совет создать что-то вроде сущностей "значение" с именем и значением, и их уже можно хранить. Т.е. универсальность обеспечивается не каким-то супер классом, а возможностью делать что-то похожее на словари. Тогда перекомпиливать вообще ничего не надо

Pirozjvok-Rumyany Автор вопроса
Pirozjvok Rumyany
т.е Создать что то типа KeyValuePair?

Да, только чуть шире. Но идею вы похоже поняли. Может быть свой keyValue придется расширить айдишником, или ещё чем то. Не исключаю, что надо будет дописать несколько конвертеров. Но суть в том, что он должен всасывать в себя любой тип параметра и любое значение. Оцените еще требования к быстродействию

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Карта сайта